如何将Okta配置为AWS Cognito身份池的SAML IdP?

时间:2019-09-12 10:41:32

标签: amazon-web-services amazon-cognito saml okta federated-identity

我想将Okta配置为AWS Cognito身份池(而不是用户池)的SAML IdP。

创建身份池时,我需要指定与AWS账户关联的SAML IdP。作为定义IdP的一部分,我需要提供一个元数据文档文件:

AWS IdP definition

要从Okta获取此元数据文档,我需要在Okta中定义一个使用SAML集成的应用程序(即AWS是资源提供者,而Okta是IdP):

enter image description here

这需要来自AWS的2个我不知道如何获取的值:

  1. 单一登录网址。 Okta UI提示如下:
      

    使用HTTP POST发送SAML断言的位置。通常将其称为应用程序的SAML断言消费者服务(ACS)URL。

  2. 受众URI(SP实体ID)。 Okta UI提示如下:
      

    应用程序定义的唯一标识符,是SAML断言的预期受众。这通常是您应用程序的SP实体ID。

如何/在何处从AWS获得这些值?

如果我试图为Cognito身份池创建IdP,并且需要创建一个IdP,该IdP需要Okta中的值,而Okta中的值需要引用Cognito身份池,那么如何避免循环引用? / p>

1 个答案:

答案 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账户。