SAML 会话在 Amazon Cognito 用户池中启动
Amazon Cognito 支持由服务提供商启动(SP 启动)的单点登录 (SSO)。SAML V2.0 技术概述
对于某些企业使用案例,对内部应用程序的访问从企业 IdP 托管的控制面板上的书签开始。当用户选择书签时,IdP 会生成一个 SAML 响应并将其发送到 SP 以向应用程序验证用户身份。
Amazon Cognito 不支持 IdP 启动的 SSO。除非 Amazon Cognito 通过 SAML 请求启动身份验证,否则 Amazon Cognito 无法验证它是否已请求收到的 SAML 响应。
在企业控制面板中为 Amazon Cognito 应用程序添加书签
您可以在 SAML 或 OIDC IdP 控制面板中创建书签,提供对通过 Amazon Cognito 用户池进行身份验证的 Web 应用程序的 SSO 访问。您可以通过不要求用户使用托管 UI 登录的方式链接到 Amazon Cognito。为此,请根据以下模板构建一个指向 Amazon Cognito 用户池的 对端点授权 的书签链接:
https://
your_Amazon_Cognito_userpool_domain
/authorize?response_type=code
&identity_provider=your-SAML-IdP-name
&client_id=your-client-id
&redirect_uri=https://your_application_redirect_url
您还可以在授权终端节点请求中使用 idp_identifier
参数而不是 identity_provider
参数。IdP 标识符是在用户池中创建身份提供商时可以配置的替代名称。请参阅选择 SAML 身份提供商名称。
当您在对 /authorize
的请求中使用适当的参数时,Amazon Cognito 会静默开始 SP 启动的登录流程并将您的用户重定向到使用您的 IdP 登录。
下图显示了模拟 IdP 启动的 SSO 的身份验证流程。您的用户可以通过公司门户网站中的链接向 Amazon Cognito 进行身份验证。

上传或链接来自提供商的元数据文档,以便在用户池中添加 SAML IdP。创建一个使用您的 SAML IdP 进行登录的应用程序客户端,并将您的应用程序的 URL 作为授权回调 URL。有关应用程序客户端的更多信息,请参阅配置用户池应用程序客户端。
在尝试使用此解决方案向应用程序进行身份验证之前,请测试由 SP 发起的从托管 UI 向您的应用程序的登录。有关如何在 Amazon Cognito 中配置 SAML IdP 的更多信息,请参阅将第三方 SAML 身份提供商与 Amazon Cognito 用户池集成。
满足这些要求后,为您的 /authorize
终端节点创建一个书签,其中包含 identity_provider
或 idp_identifier
参数。上图说明了随后的过程。
-
您的用户登录 SSO IdP 控制面板。用户有权访问的企业应用程序将填充此控制面板。
-
您的用户选择指向应用程序的链接,该应用程序向 Amazon Cognito 进行身份验证。在许多 SSO 门户中,您都可以添加自定义应用程序链接。可用于创建指向 SSO 门户中公共 URL 的链接的任何功能都可以使用。
-
SSO 门户中的自定义应用程序链接将用户定向到用户池 对端点授权。该链接包括
response_type
、client_id
、redirect_uri
和identity_provider
的参数。identity_provider
参数是您在用户池中提供 IdP 的名称。您还可以使用idp_identifier
参数而不是identity_provider
参数。用户通过包含idp_identifier
或identity_provider
参数的链接访问您的托管 UI。此用户绕过登录页面并直接导航以使用您的 IdP 进行身份验证。有关命名 SAML IdP 的更多信息,请参阅选择 SAML 身份提供商名称。示例 URL:
https://
your_Amazon_Cognito_userpool_domain
/authorize?response_type=code
&identity_provider=your-SAML-IdP-name
&client_id=your-client-id
&redirect_uri=https://your_application_redirect_url
-
Amazon Cognito 使用 SAML 请求将用户会话重定向到您的 IdP。
-
您的用户在登录控制面板时可能已收到 IdP 的会话 Cookie。您的 IdP 使用此 Cookie 以静默方式验证用户并使用 SAML 响应将其重定向到 Amazon Cognito
idpresponse
终端节点。如果不存在活动会话,则 IdP 在发布 SAML 响应之前将对用户重新进行身份验证。 -
Amazon Cognito 会验证 SAML 响应,并根据 SAML 断言创建或更新用户配置文件。
-
Amazon Cognito 使用授权码将用户重定向到您的内部应用程序。您将内部应用程序 URL 配置为应用程序客户端的授权重定向 URL。
-
您的应用程序用授权码交换 Amazon Cognito 令牌。有关更多信息,请参阅令牌端点。