6

我正在寻找有关如何扩展我们现有的 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,对于在启用的身份提供者之一。

4

1 回答 1

-1

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

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

A :

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

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

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

此外,如果您访问Amazon Cognito 用户池,您会看到它们突出显示相同的内容,

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

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

根据文档,可以为各种第三方登录配置用户池。这在通过第三方添加用户池登录中突出显示。

对于 OpenID Connect 相关配置,可以通过将 OIDC 身份提供者添加到用户池部分找到文档。最后,可以在OIDC 用户池 IdP 身份验证流程中找到流程和幕后操作。

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

A:

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

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

不幸的是,我不确定代码示例。

希望这有帮助。

于 2018-06-26T08:02:42.710 回答