第 4 步 将使用 SAML 身份提供商的登录添加到用户池(可选) - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

第 4 步 将使用 SAML 身份提供商的登录添加到用户池(可选)

您可以允许您的应用程序用户通过 SAML 身份提供商(IdP)进行登录。无论您的用户是直接登录还是通过第三方登录,所有用户都在用户池中有一个配置文件。如果您不想添加通过 SAML 身份提供商进行的登录,请跳过此步骤。

您需要更新您的 SAML 身份提供商并配置您的用户池。请参阅 SAML 身份提供商的文档,了解有关如何将您的用户池添加为 SAML 2.0 身份提供商的依赖方或应用程序的信息。

请参阅 SAML 身份提供商的文档,了解有关如何将您的用户池添加为 SAML 2.0 身份提供商的依赖方或应用程序的信息。在 SAML 身份提供商中为 SAML 2.0 POST 绑定配置此终端节点:

https://<yourDomainPrefix>.auth.<region>.amazoncognito.com/saml2/idpresponse

您可以在 Amazon Cognito 控制台Domain name (域名) 选项卡上找到用户池的域前缀和区域值。

对于一些 SAML 身份提供商,您还需要采用以下格式提供 SP urn/受众 URI/SP 实体 ID:

urn:amazon:cognito:sp:<yourUserPoolID>

您可以在 Amazon Cognito 控制台General settings (常规设置) 选项卡上找到用户池 ID。

您还应配置 SAML 身份提供商,以便为您的用户池中需要的任何属性提供属性值。通常情况下,email 是用户池的必需属性。在这种情况下,SAML 身份提供商应在 SAML 断言中提供一个 email 值 (声明)。

Amazon Cognito 用户池支持 SAML 2.0 与 POST 绑定端点联合。这使您的应用程序不必检索或分析 SAML 断言响应,因为用户池直接通过用户代理从身份提供商接收 SAML 响应。

Original console

在您的用户池中配置 SAML 2.0 身份提供商

  1. 转到 Amazon Cognito 控制台。如果出现提示,请输入 Amazon 凭证。

  2. 选择 Manage User Pools (管理用户池)

  3. 从列表中选择现有用户池,或 create a user pool(创建用户池)。

  4. 在左侧导航栏上,选择身份提供商

  5. 选择 SAML 以打开 SAML 对话框。

  6. Metadata document(元数据文档)下,通过 SAML IdP 上载元数据文档。还可以输入指向该元数据文档的 URL。有关更多信息,请参阅 将第三方 SAML 身份提供商与 Amazon Cognito 用户池集成

    注意

    建议您提供端点 URL(如果它是一个公有端点),而不是上传文件,因为这将允许 Amazon Cognito 自动刷新元数据。通常,元数据刷新操作每 6 小时执行一次或在元数据过期前执行 (以时间较早者为准)。

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

  8. 输入要使用的任何可选 SAML 标识符

  9. 如果您希望用户在用户池注销时,同时从 Amazon Cognito 和 SAML IdP 注销,请选择 Enable IdP sign out flow(启用 IdP 注销流程)。

    如果启用此流程,在调用 Logout-endpoint 时,将会向 SAML IdP 发送已签名的注销请求。

    配置此终端节点以处理来自 IdP 的注销响应。此终端节点使用 POST 绑定。

    https://<yourDomainPrefix>.auth.<region>.amazoncognito.com/saml2/logout
    注意

    如果选择此选项,并且您的 SAML 身份提供商需要已签名的注销请求,则您还需要为您的 SAML IdP 配置 Amazon Cognito 提供的签名证书。

    SAML IdP 将处理已签名的注销请求并从 Amazon Cognito 会话中注销您的用户。

  10. 选择创建提供商

  11. Attribute mapping 选项卡上,至少为必需属性添加映射,通常是 email,如下所示:

    1. 按照您的身份提供商提供的 SAML 断言中的显示,键入 SAML 属性名称。您的身份提供商可能会提供示例 SAML 断言以供参考。一些身份提供商使用简单名称(如 email),另一些则使用以下示例 URL 格式的属性名称:

      http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
    2. 从下拉列表中选择目标用户池属性。

  12. 选择保存更改

  13. 选择转到摘要页面

New console

在您的用户池中配置 SAML 2.0 身份提供商

  1. 转到 Amazon Cognito 控制台。如果出现提示,请输入 Amazon 凭证。

  2. 选择 User Pools(用户池)。

  3. 从列表中选择现有用户池,或 create a user pool(创建用户池)。

  4. 选择 Sign-in experience(登录体验)选项卡。找到 Federated sign-in(联合登录),然后选择 Add an identity provider(添加身份提供商)。

  5. 选择 SAML 社交身份提供商。

  6. 输入以逗号分隔的 Identifiers(标识符)。标识符将告知 Amazon Cognito 应该检查用户登录时输入的电子邮件地址,然后将它们引导到与其域名对应的提供商。

  7. 如果您希望 Amazon Cognito 在用户注销时向您的提供商发送已签名的注销请求,请选择 Add sign-out flow(添加注销流程)。您必须配置 SAML 2.0 身份提供商以向配置托管 UI 时创建的 https://<your Amazon Cognito domain>/saml2/logout 端点发送注销响应。此 saml2/logout 端点使用 POST 绑定。

    注意

    如果选择此选项,并且您的 SAML 身份提供商需要已签名的注销请求,则您还需要为您的 SAML IdP 配置 Amazon Cognito 提供的签名证书。

    SAML IdP 将处理已签名的注销请求并从 Amazon Cognito 会话中注销您的用户。

  8. 选择 Metadata document source(元数据文档源)。如果您的身份提供商在公有 URL 上提供 SAML 元数据,则可以选择 Metadata document URL(元数据文档 URL)然后输入该公有 URL。否则,请选择 Upload metadata document(上载元数据文档),然后选择您之前从提供商下载的元数据文件。

    注意

    我们建议您输入元数据文档 URL(如果您的提供商具有公有端点),而不是上载文件,因为这将允许 Amazon Cognito 自动刷新元数据。通常,元数据刷新操作每 6 小时执行一次或在元数据过期前执行(以时间较早者为准)。

  9. 选择 Map attributes between your SAML provider and your app(在 SAML 提供商和应用程序之间映射属性)将 SAML 提供程序属性映射到用户池中的用户配置文件。在属性映射中包含用户池必需属性。

    例如,当您选择 User pool attribute(用户池属性)email 时,按照您的身份提供商提供的 SAML 断言中显示的内容,输入 SAML 属性名称。您的身份提供商可能会提供示例 SAML 断言以供参考。一些身份提供商使用简单名称(如 email),另一些则使用以下示例 URL 格式的属性名称:

    http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  10. 选择创建

有关更多信息,请参阅 向用户池添加 SAML 身份提供商