如何在AWS Cognito用户池中将Okta设置为SAML IDP?

7
我希望使用基于SAML 2.0的IDP Okta,AWS Cognito作为服务提供商,并使用Cognito用户池进行联合IDP配置。
我已经按照下面列出的AWS网站中提到的所有步骤进行了操作。

Okta不提供任何支持或文档 - https://support.okta.com/help/answers?id=9062A000000QucAQAS&feedtype=SINGLE_QUESTION_DETAIL&dc=xSAML&criteria=OPENQUESTIONS&

请注意,我已经尝试过将Okta作为IDP,并与AWS IAM建立了信任关系,使用Okta用户登录到我的AWS帐户。按照Okta提供的详细文档,这运行良好。然而,我的需求是不同的,我想在我的AWS Cognito用户池中使用Okta作为SAML IDP。

任何包含在AWS和Okta两端都需要配置的详细文档都将有所帮助。


1
应该很容易。跟随第三个链接 - AWS博客应该可以使用。我用它来设置ADFS和Microsoft Azure AD作为我的Userpool中的IdP。对我有用。你能提一下你如何在Okta中设置依赖方(博客的第3步)吗?Cognito部分非常简单 - 给一个名称和URL并映射属性。就这样!还要提一下你遇到了什么错误或警告。 - agent420
2个回答

7
我已经通过以下步骤将Okta与Cognito通过SAML连接起来:
Okta端:
- Single sign on URL是您的Cognito SAML终点,格式为:https://<yourDomainPrefix>.auth.<region>.amazoncognito.com/saml2/idpresponse(在用户池下查看“应用程序集成” -> “域名”以获取URL的第一部分)。 - Audience URI (SP Entity ID)是您的Cognito用户池的URN:urn:amazon:cognito:sp:<yourUserPoolID>(在用户池的“常规设置”中查看该池ID)。 - 属性声明:您想要添加任何在池中设置为强制性的属性,例如电子邮件。
Cognito端 - 用户池:
- 联合->身份提供者:选择SAML并导入来自Okta的metadata.xml。 - 进入您的应用程序客户端设置,在应用程序集成下启用新创建的IDP。
Cognito端 - 身份池:
- 在身份验证提供程序下,单击SAML选项卡,您将能够勾选Okta提供程序复选框,因为您已将其作为受信任的提供程序添加到IAM下。
以上就是全部内容。以下是一些有用的资源:https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-saml-idp.html 编辑:Audience URI/Audience Restriction Okta设置需要澄清。如下所述,格式为urn:amazon:cognito:sp:region_randomid(即urn:amazon:cognito:sp:eu-west-1_SdsSdwSD3e),您无需自己添加区域。

亚马逊现在有一个网页,其中包含上述说明的更详细版本。https://aws.amazon.com/premiumsupport/knowledge-center/cognito-okta-saml-identity-provider/ - Tom Morris

3

免责声明:我不是SAML专家

我们在这里遇到了同样的问题。 在Okta进行身份验证后,我们被重定向到Cognito登录界面。 我尝试按照WenWolf的建议操作,但没有成功。

我使用Firefox中的SAML-tracer扩展程序分析了SAML流程。 在断言POST之后的重定向URI中隐藏了一个错误消息。

GET https://XXXXX?error_description=Error+in+SAML+response+processing%3A+Audience+restriction+in+SAML+Assertion+does+now+allow+it+for+urn%3Aamazon%3Acognito%3Asp%3Aeu-west-1_YYYYYYYY+&state=e4314f8a-e321-4302-91fe-2a4657a9c582&error=server_error HTTP/1.1

给你的是:

SAML响应处理中的错误:SAML Assertion中的受众限制不允许它用于urn:amazon:cognito:sp:eu-west-1_YYYYYYYY

要在Okta中进行修复:

  • 通过替换最初在文档博客中推荐的值,更改Okta中的受众限制字段
    • urn:amazon:cognito:sp:IDFoundInAppIntegrationAppClientSettings
  • 使用错误消息中指示的值进行更改
    • urn:amazon:cognito:sp:eu-west-1_YYYYYYYY

该ID还出现在Cognito中的自动生成的组中:常规设置>用户和组

PS:保持NameId和所需属性映射的一致性的其他建议也需要遵循。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接