簡體   English   中英

Kotlin 和 AWS Lambda:如何實現像 OAUTH2 這樣的安全身份驗證

[英]Kotlin and AWS Lambda: How to implement secure authentication like OAUTH2

這是一個架構問題 我嘗試過的:研究,研究,研究。

我想使用 AWS Lambda部署各種微服務。 通過 Web 和 Android 應用程序,經過身份驗證的用戶應該可以訪問這些。

問題 1:如何在 Android Kotlin / Z0B18A4F58782BABCBADZ3 應用程序中安全存儲 AWS Gateway API 密鑰(秘密) Android Keystore 是正確(安全)的答案嗎?

問題 2:實現用戶登錄的最佳、安全方式是什么? 登錄應該位於 Lambda 還是應用程序內部? 同樣,如何在 Android 上安全地存儲登錄數據? 基於 cookie 的 Web 身份驗證能否成為答案(又名“讓我保持登錄狀態” )?

目標/我的問題是我希望 Android 應用程序用戶只在應用程序中輸入他/她的登錄數據一次,並且不再被要求登錄我的 Lambda 微服務。 我知道 API 憑據和登錄在這里是兩個不同的問題。

示例項目可能嗎?

這不適用於銀行等關鍵數據,但我仍然希望在 sec 方面盡可能多地遵循最佳實踐。

我不確定您是否研究過Amazon Cognito ,但它可用於為用戶界面和 API 提供身份驗證。 它可以很容易地與 Lambda/API 網關集成。

作為使用 IAM 角色和策略或 Lambda 授權方(以前稱為自定義授權方)的替代方法,您可以使用 Amazon Cognito 用戶池來控制誰可以訪問您在 Amazon ZDB974238714CA8DE634A7CE1DZ08A 網關中的 API。

進一步閱讀: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html

如果它有幫助,我有一些連接到 lambdas 並使用 Cognito 的雲演示示例 UI。 您可以從這里開始運行它們: https://authguidance.com/home/code-samples-quickstart/

該博客有一些關於它們如何組合在一起的文章 - 請參閱索引頁面了解更多詳細信息 - 例如,有一篇關於 UI 令牌存儲的帖子。

可以通過刷新令牌管理持久會話 - 但您的應用程序仍應處理令牌和 session 到期 - 以及以不同用戶身份登錄以進行測試等場景。

暫無
暫無

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

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