【问题标题】:Cognito authorization code grant flow for custom UI自定义 UI 的 Cognito 授权代码授予流程
【发布时间】:2019-08-02 15:26:28
【问题描述】:

我正在尝试复制 cognito 托管的 ui 登录页面 (https://docs.aws.amazon.com/cognito/latest/developerguide/login-endpoint.html) 的功能,但 aws sdk 不提供任何可采用用户名、密码并返回可用于获取访问权限/ID 的授权码的方法令牌。 InitialAuth 和 adminInitiateAuth 仅支持直接返回 access/id 令牌的隐式流。有没有解决方法,如何检索授权码?

谨此致以最诚挚的问候, 雅库布

【问题讨论】:

    标签: amazon-web-services amazon-cognito


    【解决方案1】:

    没有支持此功能的 API。如果initiateAuthadminInitiateAuth 可以回复授权码就好了。

    suggested by AWS 的一种解决方法是让您的后端向托管 UI 中的登录页面发送一个带有登录名和密码的 POST 请求。我不会推荐这个解决方案。它不必要地复杂,不适用于 MFA 挑战。它还可能影响暴力攻击检测以及高级安全功能,因为用户的原始 IP 地址被您的后端 IP 地址屏蔽。

    【讨论】:

      【解决方案2】:

      您应该使用一些 SDK。有关如何在 Web 环境中使用的示例,请参阅此链接 https://docs.aws.amazon.com/cognito/latest/developerguide/using-amazon-cognito-user-identity-pools-javascript-examples.html

      【讨论】:

      • 是的,我正在使用 java sdk。 javascript sdk 只提供openid 隐式流,直接返回access/id 令牌,是完全不同的流
      • 您使用的是安卓系统吗?试试this。根据文档,Cognito 仅适用于 Web 或移动应用程序。 Amazon Cognito 为您的 Web 和移动应用程序提供身份验证、授权和用户管理。
      • 不,我需要从服务器做,所以我使用 java sdk。我想创建自己的登录用户界面(但不是 SPA),因此后端将进行实际登录,但我需要使用授权码授予流程。
      • 首先,使用 Cognito JS SDK 设置自定义 UI。然后实现授权流程。
      • 使用任何 Cognito API 或 SDK 都无法通过托管 UI 获得授权代码授权。只有通过与脆弱的托管 UI (see answer) 交互才能实现。
      猜你喜欢
      • 2021-12-31
      • 2018-08-07
      • 2021-07-24
      • 2020-05-05
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-19
      相关资源
      最近更新 更多