我想知道是否有人圍繞如何解決API網關/ Lambda上的以下問題提出了一個好主意 - API的使用者只需要一個令牌,通過認證授權者附加到API網關,API必須處理所有事情,並僅僅回覆令牌。AWS:使用開發人員身份驗證身份的安全API網關
所以用戶發送我的登錄LAMBDA他們的用戶名和密碼,以便按該文檔我做了以下(我砍傷了錯誤處理出來爲簡潔):
const cognitoidentity = new AWS.CognitoIdentity({ region: 'eu-west-1' })
const userId = authenticationService.authorise(username, password)
const params = {
IdentityPoolId: 'eu-west-1:my-identity-pool-id',
Logins: {
'myapp.mydomain.com': userId,
},
}
cognitoidentity.getOpenIdTokenForDeveloperIdentity(params, (err, data) => {
// Now I have an OpenId token and an identity Id
})
起初我以爲那我應該叫GetCredentialsForIdentity但是這並不會使我返回訪問令牌,我是否正在往這裏走,或者我錯過了什麼?
更新:爲了清楚起見,我不希望消費者必須實施AWS客戶端sdk,基本上我希望他們能夠添加一個頭部,以使他們能夠像傳統api一樣提出請求。
如果消費者不需要實施AWS SDK,他們如何獲得令牌以訪問API?你有一個自定義的令牌生成器或類似的東西給你的消費者? –
那麼對於用戶池他們得到一個JWT回來這是很好 - 從進一步的研究,我認爲身份池是浪費時間,所以是的,我想創建自己的JWT實現與聯合身份使用,我會更新我已經證明了答案。 –