Ral*_*ton 6 openid-connect amazon-cognito aws-api-gateway aws-sdk-net
我正在寻找有关如何扩展现有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不为null,那么我们将离开比赛,并且我可以使用context.AuthenticationResult.IdToken作为后续调用AWS API Gateway端点的OAuthBearerToken,这些端点受同一Cognito用户池保护.
所有这一切都很有效,但现在我们正在尝试启用其他身份提供商(首先使用Auth0),我现在对如何获取API网关将从Cognito识别的IdToken感到茫然,对于其中的用户而言其中一个已启用的身份提供商.
Kav*_*uwa -1
我没有在 AWS 用户池上工作过。但我浏览了一些文件,我相信这些文件可以解决您的问题。
问:一切都很好,但现在我们正在尝试启用其他身份提供商(首先从 Auth0 开始)
A :
首先,常见 Amazon Cognito 场景重点介绍了如何使用 AWS cognito 的不同场景。我更希望你经历并理解它们。
在那里您可以找到使用用户池进行身份验证。
您的应用程序用户可以直接通过用户池登录,也可以通过第三方身份提供商 (IdP) 联合登录。
此外,如果您访问Amazon Cognito 用户池,您可以看到它们突出显示相同的内容,
使用 Facebook、Google 进行社交登录,使用 Amazon 进行登录,以及使用用户池中的 SAML 身份提供商进行登录。
您现在需要的是配置您的 OpenID Connect 提供程序(如您所说的 Auth0)以进行联合。
根据文档,可以为各种第三方登录配置用户池。通过第三方添加用户池登录中重点介绍了这一点。
对于 OpenID Connect 相关配置,可以通过将 OIDC 身份提供商添加到用户池部分找到文档。最后,可以在OIDC 用户池 IdP 身份验证流程中找到流程和幕后操作。
问:我现在不知道如何获取 API 网关可以从 Cognito 识别的 IdToken
A:
关于令牌,在此流程中,AWS 用户池充当依赖方。因此 OpenID Connect 提供商(例如:OAuth0)向 AWS 颁发令牌。获取并验证令牌后,您的应用程序将从 AWS 接收令牌,这些令牌是标准令牌,就像您通过 SRP 身份验证获取的令牌一样。如下突出显示,
借助内置托管 Web UI,Amazon Cognito 为所有经过身份验证的用户提供令牌处理和管理,因此您的后端系统可以对一组用户池令牌进行标准化。
不幸的是我不确定代码示例。
希望这有帮助。
| 归档时间: |
|
| 查看次数: |
272 次 |
| 最近记录: |