我的 UI 应用程序使用 AWS Cognito 进行用户身份验证。我们已成功将 SAML 身份提供商集成到我们的 Cognito 用户池中。
现在我想使用 AD FS 支持 SSO。
下面是我的 URL,我可以用它来登录 ADFS。
https://adfs.DOMAIN.com/adfs/ls/IdpInitiatedSignOn.aspx
我已阅读此 AWS Doc 来配置任何 aws 管理控制台。
但是我应该遵循哪些步骤才能为 Cognito 启用此功能。
有什么帮助吗?
来自 Amazon 开发者论坛:“Cognito 用户池当前不支持 IdP 发起的 SAML 流。”
如果您能够使用 Open-ID 而不是 SAML,您将能够克服这个问题。如果必须使用 SAML,您可能必须等到提供对 IdP 发起的 SAML 流的支持。
接受的答案已过时。
最近 AWS 发布了对 IDP 发起的 SAML 的支持:https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-SAML-session-initiation.html#cognito-user-pools -SAML-会话启动-idp-启动
要使用 IDP 启动的 SAML,您只需在用户池配置中切换“接受 SP 启动和 IdP 启动的 SAML 断言”,如下所示:
要使 SAML IDP 启动的流程正常工作,您需要在 IDP 中配置 RelayState。继电器状态应如下所示:
identity_provider<your_cognito_dip>&client_id<the_cognito_app_client_id>&scope=openid+profile+email+aws.cognito.signin.user.admin&response_type=code&redirect_uri=<your_callback>
当 Cognito 调用回调 URI 时,它将包含授权代码作为 URL 查询参数。在您的应用程序中,您可以解析 URL 中的代码以获取经过身份验证的用户的数据。