将第三方 SAML 身份提供商与 Amazon Cognito 用户池集成 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将第三方 SAML 身份提供商与 Amazon Cognito 用户池集成

要配置第三方 SAML 2.0 身份提供者(IdP)解决方案以使用 Amazon Cognito 用户群体的联合身份验证,您必须配置 SAML IdP 以重定向到以下 URL:https://Your user pool domain/saml2/idpresponse。如果您的用户群体具有 Amazon Cognito 域,则可以在 Amazon Cognito 控制台中您的用户群体的 App integration(应用程序集成)选项卡中找到用户群体域路径。

注意

在 2017 年 8 月 10 日前的公开测试期间,您在用户池中创建的任何 SAML IdP 都具有重定向 URL https://<yourDomainPrefix>.auth.<region>.amazoncognito.com/login/redirect。如果您的用户池中的公开测试版中具有这些 SAML 身份提供商之一,则必须执行以下操作之一:

  • 将其替换为使用新的重定向 URL 的新身份提供商。

  • 更新您的 SAML IdP 中的配置,以接受旧的和新的重定向 URL。

Amazon Cognito 中的所有 SAML IdP 都将切换到新的 URL。旧 URL 将于 2017 年 10 月 31 日停止使用。

对于一些 SAML IdP,您必须以 urn:amazon:cognito:sp:<yourUserPoolID> 格式提供 urn/受众 URI/SP 实体 ID。您可以在 Amazon Cognito 控制台的 General settings(常规设置)选项卡上找到用户池 ID。

您还必须配置 SAML IdP,为您用户池中需要的任意属性提供属性值。通常,email 是用户池的必需属性,这种情况下 SAML IdP 必须在 SAML 断言中提供 email 值(声明)。

注意

Amazon Cognito 不接受您的 IdP 作为属性值传递的 4 字节 UTF-8 字符(例如 😐 或𠮷)。您可以对字符进行 Base64 编码以将其作为文本传递,然后在应用程序中对其进行解码。

在以下示例中,将不接受属性声明:

<saml2:Attribute Name="Name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">😐</saml2:AttributeValue> </saml2:Attribute>

与上述示例不同,将接受以下属性声明:

<saml2:Attribute Name="Name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">8J+YkA==</saml2:AttributeValue> </saml2:Attribute>

以下链接将帮助您配置第三方 SAML 2.0 IdP 解决方案以使用 Amazon Cognito 用户池的联合身份验证。

注意

Amazon Cognito 包含 IdP 支持,因此您只需访问以下提供商站点即可获取 SAML 元数据文档。您可以在提供商网站上查看有关与 Amazon 集成的详细说明,但您不需要这些说明。

解决方案 更多信息
Microsoft Active Directory 联合身份验证服务 (AD FS) 您可以从以下地址下载 ADFS 联合身份验证服务器的 SAML 元数据文档:https://<yourservername>/FederationMetadata/2007-06/FederationMetadata.xml
Okta 在 Okta 中将 Amazon Cognito 用户池配置为应用程序后,您可以在 Okta 控制面板的 Admin(管理员)部分中找到元数据文档。选择应用程序,选择 Sign On(登录)部分,然后查看 Settings for SAML(SAML 设置)下方的内容。该 URL 应类似于 https://<app-domain>.oktapreview.com/app/<application-ID>/sso/saml/metadata
Auth0 从 Auth0 控制面板获取元数据下载文档。选择 Clients(客户端),然后选择 Settings(设置)。向下滚动,选择 Show Advanced Settings(显示高级设置),然后查找您的 SAML Metadata URL(SAML 元数据 URL)。它应该类似于 https://<your-domain-prefix>.auth0.com/samlp/metadata/<your-Auth0-client-ID>
Ping Identity 对于 PingFederate,您可以在通过文件提供一般 SAML 元数据中找到有关下载元数据 XML 文件的说明。