簡體   English   中英

采用認知正確方法的AWS Lambda

[英]AWS Lambda with Cognito right approach

我想為客戶端提供一個簡單的API。 客戶端在其應用程序中使用我的API的輸出。 該API非常簡單。 我正在將無服務器框架部署到AWS Lambda。 通過API公開的功能不使用任何其他AWS服務(例如S3等)。

我的問題是要使用哪種身份驗證。 我當時想嘗試使用Cognito。

1.問題:這有意義嗎? 還是對於這個簡單的用例甚至是一個更簡單的選擇?

2.問題:所以我說對了。 我將首先創建一個用戶池。 然后基於此用戶池創建一個身份池?

3.問題:最后,我的客戶端從cognito獲取訪問令牌,並將其附加到請求中的標頭。 這樣,他就可以通過API網關訪問我的REST API,並觸發lambda函數。 但是客戶端首先如何在用戶池中創建一個“帳戶”呢? 我有參與嗎?

對於此用例,Cognito身份驗證確實是一個不錯的選擇。 您可以具有如下流程:

Cognito User Pool Authentication -> Token passed as header to the API in API Gateway -> API returns JSON data after successful authentication [a]。

我想強調一點,一個Cognito用戶池足以滿足此用例。 Cognito用戶池用於身份驗證,Cognito身份池用於授權。 Cognito身份池實質上生成了臨時的AWS憑證,由AWS STS出售。 因此,我在這里看不到您需要Cognito身份池的地方。

為了生成JWT令牌,您需要讓用戶執行成功的身份驗證操作。 要執行成功的返回令牌的身份驗證操作,您可以查看InitiateAuth API調用[b]。

參考

[一種]。 https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html

並[b]。 https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM