为用户池创建和管理 SAML 身份提供商(Amazon Web Services Management Console) - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为用户池创建和管理 SAML 身份提供商(Amazon Web Services Management Console)

您可以使用 Amazon Web Services Management Console 创建和删除 SAML 身份提供商 (IdP)。

在创建 SAML IdP 之前,您需要使用从第三方 IdP 处获得的 SAML 元数据文档。有关如何获取或生成所需的 SAML 元数据文档的说明,请参阅将第三方 SAML 身份提供商与 Amazon Cognito 用户池集成

Original console
在您的用户池中配置 SAML 2.0 IdP
  1. 转到 Amazon Cognito 控制台。如果出现提示,请输入 Amazon 凭证。

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

  3. 从列表中选择一个现有用户池,或创建一个用户池

  4. 在左侧导航栏上,选择 Identity providers(身份提供商)。

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

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

    注意

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

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

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

  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 IdP 需要已签名的注销请求,则您还需要为您的 SAML IdP 配置 Amazon Cognito 提供的签名证书。

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

  10. 选择 Create provider(创建提供商)。

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

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

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

  12. 选择 Save changes(保存更改)。

  13. 选择 Go to summary(转到摘要页面)。

New console
在您的用户池中配置 SAML 2.0 IdP
  1. 转到 Amazon Cognito 控制台。如果出现提示,请输入 Amazon 凭证。

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

  3. 从列表中选择一个现有用户池,或创建一个用户池

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

  5. 选择一个 SAML IdP。

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

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

    注意

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

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

  8. 选择 Metadata document source(元数据文档源)。如果您的 IdP 在公有 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 时,按照您的 IdP 提供的 SAML 断言中显示的内容,输入 SAML 属性名称。如果 IdP 提供了示例 SAML 断言,您可以使用这些示例断言帮助您查找名称。一些 IdP 使用简单名称 (如 email),另一些则使用类似于下面的名称:

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

注意

如果您在使用 HTTPS 元数据终端节点 URL 创建 SAML IdP 时看见 InvalidParameterException(例如,“Error retrieving metadata from <metadata endpoint> (从 <元数据终端节点> 检索元数据时出错)”),请确保元数据终端节点已正确设置 SSL,并且存在与之关联的有效 SSL 证书。

设置 SAML IdP 以添加用户池作为信赖方
  • 用户池服务提供商 URN 为:urn:amazon:cognito:sp:<user_pool_id>。Amazon Cognito 向 SAML IdP 发出 AuthnRequest 以发布 SAML 断言以及对此 URN 的受众限制。您的 IdP 将以下 POST 绑定终端节点用于 IdP 到 SP 的响应消息:https://Your user pool domain/saml2/idpresponse

  • 确保您的 SAML IdP 在 SAML 断言中为用户池填充 NameID 和任何所需属性。NameID 用于在用户池中唯一地标识您的 SAML 联合身份用户。使用持久性 SAML 名称 ID 格式。

向您的 SAML 2.0 IDP 提供签名证书
  • 要从 Amazon Cognito 获取您的 IdP 可用于验证 SAML 请求和注销请求的公钥副本,请在您的用户池的 Sign-in experience(登录体验)选项卡中的 Signing certificate(签署证书)下选择 View signing certificate(查看签名证书)或 Download as .crt(下载为 .crt)。

您可以使用 Amazon Cognito 控制台删除在用户池中设置的任何 SAML 提供商。

Original console
删除 SAML 提供商
  1. 登录 Amazon Cognito 控制台。如果出现提示,请输入 Amazon 凭证

  2. 在导航窗格中,选择 Manage your User Pools(管理您的用户池),然后选择要编辑的用户池。

  3. Federation(联合身份验证)控制台页面中选择 Identity providers(身份提供商)。

  4. 选择 SAML 以显示 SAML 身份提供商。

  5. 选中要删除的提供商旁边的复选框。

  6. 选择 Delete provider(删除提供商)。

New console
删除 SAML 提供商
  1. 登录 Amazon Cognito 控制台

  2. 在导航窗格中,选择 User Pools(用户池),然后选择要编辑的用户池。

  3. 选择 Sign-in experience(登录体验)选项卡并找到 Federated sign-in(联合登录)。

  4. 选中要删除的 SAML IdP 旁边的单选按钮。

  5. 当系统提示您 Delete identity provider(删除身份提供商)时,请输入 SAML 提供商的名称以确认删除,然后选择 Delete(删除)。