【问题标题】:How to authenticate using Enabled Identity Provider如何使用启用的身份提供者进行身份验证
【发布时间】:2018-11-28 20:59:02
【问题描述】:

我正在寻找有关如何扩展我们现有的 Cognito 身份验证流程以包含其他“启用的身份提供者”的文档。

目前我们做以下事情

var userPool = new CognitoUserPool(poolId, clientId, provider); var user = new CognitoUser(username, clientId, userPool, provider); var context = await user.StartWithSrpAuthAsync(new InitiateSrpAuthRequest { Password = string.IsNullOrEmpty(temppassword) ? password : temppassword });

如果生成的 context.AuthenticationResult 不为空,那么我们将参加比赛,我可以在随后调用 AWS API Gateway 端点时使用 context.AuthenticationResult.IdToken 作为 OAuthBearerToken,这些端点受相同的保护Cognito 用户池。

一切都很好,但现在我们正在尝试启用其他身份提供程序(首先从 Auth0 开始),我现在不知道如何为用户获取 API 网关将从 Cognito 识别的 IdToken位于已启用的身份提供程序之一中。

【问题讨论】:

  • 想知道您是否最终找到了这方面的资源(我知道这是几年前的事了),因为我处于同样的情况,不知道该怎么做。跨度>

标签: aws-api-gateway amazon-cognito openid-connect aws-sdk-net


【解决方案1】:

我没有在 AWS 用户池上工作。但是我浏览了一些文档,我相信这些文档可以解决您的问题。

问:一切都很好,但现在我们正在尝试启用其他身份提供程序(首先从 Auth0 开始)

一个:

首先,Common Amazon Cognito Scenarios 强调了有关如何使用 AWS coginito 的不同场景。我更喜欢你经历它并理解它们。

在那里你可以找到Authenticate with a User Pool

您的应用用户可以直接通过用户池登录,也可以通过第三方身份提供商 (IdP) 联合

此外,如果您访问 Amazon Cognito User Pools,您会看到它们突出显示相同,

使用 Facebook、Google 和 Login with Amazon 进行社交登录,以及使用用户池中的 SAML 身份提供商登录。

您现在需要为联合配置您的 OpenID Connect 提供程序(如您所说的 Auth0)。

根据文档,可以为各种第三方登录配置用户池。这在Adding User Pool Sign-in Through a Third Party 中突出显示。

对于 OpenID Connect 相关配置,可以通过Adding OIDC Identity Providers to a User Pool 部分找到文档。最后,可以在OIDC User Pool IdP Authentication Flow 找到流程和幕后内容。

问:我现在不知道如何获取 API 网关将从 Cognito 识别的 IdToken

答:

关于令牌,在这个流程中,AWS 用户池充当依赖方。因此 OpenID Connect 提供商(例如:- OAuth0)向 AWS 发出令牌。获得并验证令牌后,您的应用程序将从 AWS 接收标准令牌,就像您通过 SRP 身份验证获得的一样。这突出显示如下,

借助内置的托管 Web UI,Amazon Cognito 为所有经过身份验证的用户提供令牌处理和管理,因此您的后端系统可以对一组用户池令牌进行标准化。

很遗憾,我不确定代码示例。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2019-07-20
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 2013-09-13
    • 2021-03-22
    • 1970-01-01
    • 2016-10-24
    相关资源
    最近更新 更多