向用户池添加 SAML 身份提供商 - Amazon Cognito
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

向用户池添加 SAML 身份提供商

可允许 Web 和移动应用程序用户通过 SAML 身份提供商 (IdP)(如 Microsoft Active Directory 联合身份验证服务 (ADFS)Shibboleth)登录。选择支持 SAML 2.0 标准的 SAML 身份提供商。

利用内置托管 Web UI,Amazon Cognito 将为所有经过身份验证的用户提供令牌处理和管理,让后端系统能够基于一组用户池令牌实现标准化。您可 IdP 在Amazon Web Services Management Console,使用AmazonCLI 或使用 Amazon Cognito API 调用。要开始使用控制台,请参阅使用 Amazon Web Services Management Console将“通过基于 SAML 的身份提供商登录”添加到用户池


                社交登录的身份验证概述
注意

通过第三方 (联合身份验证) 进行登录可在 Amazon Cognito 用户池中实现。此功能不依赖于通过 Amazon Cognito 身份池 (联合身份) 实现的联合身份验证。

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

注意

Cognito 支持大于 80 个字节的 relayState 值。虽然 SAML 规范规定 relayState 值 “长度不得超过 80 个字节”,但目前的行业惯例往往偏离这种行为。因此,拒绝超过 80 个字节的 relayState 将破坏许多标准 SAML 提供商集成。

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

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

您可以在域名选项卡Amazon Cognito 控制台

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

urn:amazon:cognito:sp:<yourUserPoolID>

您可以在常规设置选项卡Amazon Cognito 控制台

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

Amazon Cognito 用户池支持 SAML 2.0 与绑定后终端节点联合。这使您的应用程序不必检索或分析 SAML 断言响应,因为用户池直接通过用户代理从身份提供商接收 SAML 响应。您的用户池代表您的应用程序充当服务提供商 (SP)。Amazon Cognito 支持 SP 发起的单一登录 (SSO),如SAML V2.0 技术概述