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

2 分钟阅读
0

我想为我的 Amazon Cognito 用户群体配置第三方身份提供商 (IdP) 的 AWS IAM Identity Center(前身为 AWS 单点登录)。

简述

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 用户界面

  3. 为您的用户群体添加域名

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

激活 IAM Identity Center 并添加用户

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

  2. 激活 IAM Identity Center

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

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

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

  2. 选择添加应用程序添加自定义 SAML 2.0 应用程序,然后选择下一步

  3. 配置应用程序页面上,输入显示名称描述

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

  5. 应用程序元数据下,选择手动键入您的元数据值。然后提供以下值。

**重要事项:**请务必将 domain-prefixregionuserpool-id 值替换为您的环境特有的信息。

应用程序声明消费者服务 (ACS) URL:https://<domain-prefix>.auth.<region>.amazoncognito.com/saml2/idpresponse
应用程序 SAML 受众:urn:amazon:cognito:sp:<userpool-id>

  1. 选择提交。然后,转到您添加的应用程序的详细信息页面。

  2. 选择操作下拉列表并选择编辑属性映射。然后,提供以下属性。

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

应用程序中的用户属性:email
映射到 IAM Identity Center 中的此字符串值或用户属性:${user:email}
格式: Basic

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

  1. 保存您的更改。

  2. 选择分配用户按钮,然后将您的用户分配给应用程序。

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

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

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

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

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

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

SAML 属性字段中,提供与上一节步骤 7 中提供的用户属性值相匹配的电子邮件值。在用户群体属性字段中,从下拉列表中选择电子邮件

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

  1. 保存您的更改。

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

  1. 登录新的 Amazon Cognito 控制台

  2. 选择用户群体,然后选择相应的用户群体。

  3. 选择应用程序集成选项卡,然后选择应用程序客户端列表

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

  5. 托管用户界面部分,选择编辑

  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 授权类型,请选择授权码授权,这样登录端点会在用户登录时提示 Amazon Cognito 返回授权码。对于 OAuth 2.0 授权类型,请选择 Amazon Cognito 的隐式授权,以便在用户登录时返回访问令牌。然后,将 URL 中的 response_type=code 替换为 response_type=token

  1. 选择 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

  1. 输入用户凭证并选择登录

  2. 当您被重定向到浏览器地址栏中包含来自 Amazon Cognito 的代码或令牌的回传 URL 时,设置就完成了。

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

AWS 官方
AWS 官方已更新 1 年前