1

我正在開發一個Web應用程序,用戶可以通過其個人電子郵件地址登錄/註冊或使用聯合身份驗證(如Facebook/Twitter)登錄。我已經爲Cognito用戶池和身份池設置了相同的設置。Cognito的API網關授權用戶池+身份池

成功登錄後,將調用API網關上託管的API以在應用程序上顯示一些數據。我想爲每個API調用調用實現授權,並僅爲授權用戶返回響應。

我已經在API網關中創建了User Pool Authorizer,並且我能夠基於Id令牌驗證在用戶池中創建的用戶。

根據我的理解,要從身份驗證池中驗證用戶身份,我可以在Api Gateway中使用AWS_IAM。 AWS_IAM可能不適合我的應用程序,因爲API可以由用戶在用戶池以及身份池中調用。

我在考慮使用自定義授權器使用Lambda函數進行驗證。

如果必須實現自定義授權者,應該根據會話令牌驗證策略文檔是否足以驗證來自用戶池/身份池的用戶?請建議定製授權的替代品,如果有的話。

在此先感謝

回答

0

您是否看到此博文? https://aws.amazon.com/blogs/mobile/integrating-amazon-cognito-user-pools-with-api-gateway/

可以直接將Cognito用戶池令牌作爲API網關的授權者集成,並且它可以大大簡化您所描述的流程。

+0

感謝您的輸入。我已經閱讀了這篇文章,這特定於僅從用戶池驗證用戶。但我的應用程序擁有用戶池以及身份池的用戶。 – Rahul

+0

啊,理解。那麼,您可以通過您的身份池管理用戶池登錄。有可能將其設置爲與Facebook平行的另一個提供商,因此兩者都爲憑證交易令牌。這將允許您使用相同的授權人。 APIGW團隊成員編寫了這個答案,詳細介紹了一下:https://stackoverflow.com/questions/39184419/how-to-authenticate-api-gateway-calls-with-facebook/39185749#39185749 –

相關問題