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

时间:2018-01-26 12:17:06

标签: amazon-web-services single-sign-on aws-cognito okta okta-api

我希望将Okta用作基于SAML 2.0的IDP,将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)完成的配置的任何详细文档都会有所帮助。

2 个答案:

答案 0 :(得分:6)

我确实通过SAML使用Cognito设置了Okta:

奥克塔侧:

  • 单一登录URL 将是您的Cognito SAML端点,其形式为: https://<yourDomainPrefix>.auth.<region>.amazoncognito.com/saml2/idpresponse(对于URL的第一部分,请参见用户池下的“应用集成”->“域名”)。
  • 受众群体URI(SP实体ID)将成为您的Cognito用户池的URN:urn:amazon:cognito:sp:<yourUserPoolID>(有关该池ID,请参见用户池“常规设置”)。
  • 属性语句,您想添加在池中设置为强制性的任何属性,在我的情况下是电子邮件。

认知端-用户池:

  • 联盟->身份提供者:选择SAML并从Okta导入meta.xml。
  • 在“ App集成”下进入您的App客户端设置,并启用新创建的IDP

认知端-身份池:

  • 在身份验证提供程序的“ SAML”选项卡下,您可以选中Okta提供程序复选框,因为您提到您已经将其作为IAM下的受信任提供程序。

应该就可以了。 有帮助的资源:https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-saml-idp.html

编辑:似乎需要对“听众URI /听众限制Okta”设置进行澄清。正如下面提到的朱利安(Julien)形式为urn:amazon:cognito:sp:region_randomid(即urn:amazon:cognito:sp:eu-west-1_SdsSdwSD3e)一样,您无需添加自己的区域。

答案 1 :(得分:2)

免责声明:我不是SAML专家

我们在这里不得不面对同样的问题。 在Okta中进行身份验证后,我们被重定向到了Cognito登录屏幕。 我试图遵循WenWolf的建议,但没有成功。

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

  

获取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断言中的受众限制现在允许它用于urn:amazon:cognito:sp:eu-west-1_YYYYYYYY

要在Okta中修复它,

  • 通过替换documentationblog中最初建议的值,更改Okta中的受众限制字段
    • urn:amazon:cognito:sp:IDFoundInAppIntegrationAppClientSettings
  • 通过错误消息中指示的值
    • urn:amazon:cognito:sp:eu-west-1_YYYYYYYY

此ID也显示在Cognito 常规设置>用户和组

的自动生成的组中

PS:保留有关NameId和必需的属性映射的其他建议,这些建议在两侧都必须保持一致。