【问题标题】:get auth tokens without using cognito-specific boto APIs在不使用 cognito 特定的 boto API 的情况下获取身份验证令牌
【发布时间】:2022-01-01 21:35:42
【问题描述】:

我目前正在使用 AWS Cognito 进行用户身份验证。但是,我计划使 AuthN IDP 不可知。例如,我希望以后能够用其他身份提供者替换 Cognito。

目前,我使用boto3 cognito API 来获取idToken,如下所示。如何编写非 cognito 特定实现来获取 idToken,以便在提供者更改时,我不会依赖 cognito?我想使用一些通用的 python OAuth API 来为用户获取 idToken。我该怎么做?

    cognito_client = boto3.client('cognito-idp')
    response_tokens = cognito_client.initiate_auth(
        AuthFlow='USER_PASSWORD_AUTH',
        AuthParameters={
            'USERNAME': uname,
            'PASSWORD': pwd
        },
        ClientId=OAUTH_AUDIENCE
    )

【问题讨论】:

    标签: python amazon-web-services oauth-2.0 amazon-cognito idp


    【解决方案1】:

    要从 Cognito 获取 ID 令牌,您需要调用特定的 API。如果以后要切换到其他 IDP,则需要使用该 IDP 提供的其他 API。因此,API 特定于 IDP。

    因此,此时您想要来自 Cognito 的令牌,您需要使用 AWS API。

    也就是说,如果“不同的 IDP”是指“使用 Cognito 配置不同的 IDP”,那么我想补充一点,OAuth 2.0 流程不能使用 CLI 或 SDK 进行。因为,OAuth 2.0 流程是基于浏览器的流程,要使用不同的 IDP 登录,您需要使用浏览器。

    【讨论】:

      猜你喜欢
      • 2016-04-11
      • 1970-01-01
      • 2020-05-05
      • 2021-03-30
      • 1970-01-01
      • 2017-09-25
      • 2020-11-16
      • 2012-11-07
      • 2018-04-14
      相关资源
      最近更新 更多