如何将 IAM Identity Center 与 Amazon Cognito 用户群体集成?

2 分钟阅读
0

我想使用第三方身份提供者(IdP)为我的 Amazon Cognito 用户群体配置 AWS IAM Identity Center(AWS Single Sign-On 的后继者)。

简短描述

Amazon Cognito 用户群体允许通过第三方 IdP 登录。用户可以使用 IAM Identity Center 通过安全断言标记语言版本 2.0(SAML 2.0)IdP 进行联合。有关更多信息,请参阅联合登录在 Amazon Cognito 用户群体中的工作原理

用户群体与 IAM Identity Center 集成之后,用户可以获取来自 Amazon Cognito 的用户群体令牌。有关更多信息,请参阅将令牌与用户群体结合使用

解决方法

要将 Amazon Cognito 用户群体与 IAM Identity Center 集成,请执行以下步骤。

**注意:**如果您已经拥有带应用程序客户端的用户群体,请跳过以下部分。

创建具有应用程序客户端和域名的 Amazon Cognito 用户群体

1.    创建用户群体

2.    添加应用程序客户端并设置托管 Web UI

3.    为用户群体添加域名

**注意:**如果您已经有正常运行的 IAM Identity Center 环境,请跳过以下部分。

启用 IAM Identity Center 并添加用户

1.    在启用 IAM Identity Center 之前,请先查看先决条件和注意事项

2.    启用 IAM Identity Center

3.    选择您的身份来源并创建用户。

从 IAM Identity Center 控制台配置 SAML 应用程序

1.    打开 IAM Identity Center 控制台,然后在导航窗格中选择 Applications(应用程序)。

2.    选择 Add application(添加应用程序)和 Add custom SAML 2.0 application(添加自定义 SAML 2.0 应用程序),然后选择 Next(下一步)。

3.    在 Configure application(配置应用程序)页面上,输入 Display name(显示名称)和 Description(描述)。

4.    复制 IAM Identity Center SAML 元数据文件的 URL 或者下载超链接。您可以在后续步骤中使用这些资源在用户群体中创建 IdP。

5.    在 Application metadata(应用程序元数据)下面,选择 Manually type your metadata values(手动输入您的元数据值)。然后,提供以下值。

**重要提示:**确保将 domain-prefixregionuserpool-id 值替换为特定于您的环境的信息。

Application Assertion Consumer Service(ACS)URL:https://<domain-prefix>.auth.<region>.amazoncognito.com/saml2/idpresponse 应用程序 SAML 受众:urn:amazon:cognito:sp:<userpool-id>

6.    选择 Submit(提交)。然后,前往您添加的应用程序的 Details(详细信息)页面。

7.    依次选择 Actions(操作)下拉列表和 Edit attribute mappings(编辑属性映射)。然后,提供以下属性。

应用程序中的用户属性:subject(主题)
注意:subject(主题)已预先填写。
映射到此字符串值或 IAM Identity Center 中的用户属性:
${user:subject}

格式:Persistent(持久)

应用程序中的用户属性:email(电子邮件)
映射到此字符串值或 IAM Identity Center 中的用户属性:${user:email} 格式:Basic(基本)

映射的属性将在登录时发送到 Amazon Cognito。确保在此处映射了所有用户群体的必需属性。要了解有关可用于映射的属性的更多信息,请参阅支持的 IAM Identity Center 属性

8.    保存所做更改。

9.    选择 Assign Users(分配用户)按钮,然后将您的用户分配给应用程序。

在您的用户群体中将 IAM Identity Center 配置为 SAML IdP

1.    在您的用户群体中配置 SAML IdP。应用以下设置:

Metadata document(元数据文档)下,提供元数据 URL 或上传您在上一部分的第 4 步中下载的文件。有关更多信息,请参阅将第三方 SAML 身份提供者与 Amazon Cognito 用户群体集成

输入您的 SAML 提供者名称。有关更多信息,请参阅选择 SAML 身份提供者名称

(可选)输入任意 SAML 标识符

2.    配置 SAML 提供者属性映射。应用以下设置:

SAML attribute(SAML 属性)字段中,提供与上一部分第 7 步中提供的用户属性值相匹配的 email(电子邮件)值。在 User pool attribute(用户群体属性)字段中,从下拉列表中选择 Email(电子邮件)。

**注意:**在上一部分的第 7 步中添加在 IAM Identity Center 中配置的任意其他属性。

3.    保存所做更改。

将 IdP 与用户群体应用程序客户端集成

1.    登录新的 Amazon Cognito 控制台

2.    选择 User Pools(用户群体),然后选择相应的用户群体。

3.    选择 App integration(应用程序集成)选项卡,然后选择 App client list(应用程序客户端列表)。

4.    选择相应的应用程序客户端。

5.    从 Hosted UI(托管 UI)部分选择 Edit(编辑)。

6.    选择合适的 IdP。

7.    保存所做更改。

测试设置

1.    使用以下命名模式 启动托管 UI 或构造登录端点 URL

https://example_domain_prefix.auth.example_region.amazoncognito.com/login?response_type=token&client_id=example_client_id&redirect_uri=example_redirect_url

例如:https://my-user-pool.auth.us-east-1.amazoncognito.com/login?response_type=code&client_id=a1b2c3d4e5f6g7h8i9j0k1l2m3&redirect_uri=https://example.com

对于 OAuth 2.0 grant types(OAuth 2.0 授予类型),选择 Authorization code grant(授权代码授予),以便登录端点在用户登录时提示 Amazon Cognito 返回授权代码。对于 OAuth 2.0 grant types(OAuth 2.0 授予类型),选择 Implicit grant(隐式授予),以便 Amazon Cognito 在用户登录时返回访问令牌。然后,将 URL 中的 response_type=code 替换为 response_type=token

2.    选择 IAM IdC

如果您被重定向至您的应用程序客户端的回调 URL,则表示您已经在浏览器中作为用户登录。用户群体令牌直接在 Web 浏览器地址栏的 URL 中显示。

注意:要跳过此步骤,请使用以下命名模式创建授权端点 URL
https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=token&identity_provider=samlProviderName&client_id=yourClientId&redirect_uri=redirectUrl&scope=allowedOauthScopes

3.    输入用户凭证并选择 Login(登录)。

4.    当您被重定向至回调 URL 且该 URL 在浏览器地址栏中包含来自 Amazon Cognito 的代码或令牌时,设置便完成。

**注意:**Amazon Cognito 仅支持服务提供商(SP)发起的登录。您必须使用登录端点或授权端点来测试设置。您无法使用 IAM Identity Center 的 AWS 访问门户启动 IdP 发起的登录。


AWS 官方
AWS 官方已更新 2 个月前