我想将Okta配置为AWS Cognito身份池(而不是用户池)的SAML IdP。
创建身份池时,我需要指定与AWS账户关联的SAML IdP。作为定义IdP的一部分,我需要提供一个元数据文档文件:
要从Okta获取此元数据文档,我需要在Okta中定义一个使用SAML集成的应用程序(即AWS是资源提供者,而Okta是IdP):
这需要来自AWS的2个我不知道如何获取的值:
使用HTTP POST发送SAML断言的位置。通常将其称为应用程序的SAML断言消费者服务(ACS)URL。
应用程序定义的唯一标识符,是SAML断言的预期受众。这通常是您应用程序的SP实体ID。
如何/在何处从AWS获得这些值?
如果我试图为Cognito身份池创建IdP,并且需要创建一个IdP,该IdP需要Okta中的值,而Okta中的值需要引用Cognito身份池,那么如何避免循环引用? / p>
答案 0 :(得分:1)
问题1 :URL上的单一登录。 Okta UI提示为:
使用HTTP POST发送SAML断言的位置。通常将其称为应用程序的SAML断言消费者服务(ACS)URL。
答案:
URL上的单一登录:https://signin.aws.amazon.com/saml
问题2 :受众群体URI(SP实体ID)。 Okta UI提示为:
应用程序定义的唯一标识符,是SAML断言的预期受众。这通常是您应用程序的SP实体ID。
答案:
受众URI(SP实体ID):urn:amazon:webservices
重要说明:
GitHub存储库上的(1)How to build and run Shibboleth SAML IdP and SP using Docker container提供了Amazon AWS SAML服务,并提供了已通过验证的元数据“ shibboleth-idp-dockerized / ext-conf / metadata / sp-aws-amazon-com.xml” Amazon AWS的成功SSO。
Amazon AWS SAML服务提供元数据提供Okta SAML IdP所需的URL单一登录和受众URI(SP实体ID)。
(2)Adding SAML Identity Providers to a User Pool声明用户池(否身份池)的受众URI / SP实体ID为urn:amazon:cognito:sp:your-User-Pool-ID
问题3 :如果我要为Cognito身份池创建IdP,并且需要创建一个IdP,该IdP需要Okta中的值,而Okta中的值需要引用Cognito Identity Pool ,如何避免循环引用?
答案:
为避免循环引用,Amazon AWS为Cognito身份池为不同的AWS账户分配了相同的单一登录URL和受众URI(SP实体ID),
(1),您需要首先从Okta Admin GUI创建Amazon AWS SAML SP,
(2),然后您可以通过Amazon AWS Cognito Admin GUI下载Okta的SAML IdP元数据,该数据是创建IdP(作为Okta SAML IdP)所必需的。
请注意:Amazon AWS使用属性“ awsRoles”(由SAML响应携带)来区分不同的AWS账户。