如何将 Okta 配置为 AWS Cognito 身份池的 SAML IdP?
How to I configure Okta as SAML IdP for AWS Cognito Identity Pool?
我想将 Okta 配置为 AWS Cognito 身份池(而非用户池)的 SAML IdP。
创建身份池时,我需要指定与 AWS 账户关联的 SAML IdP。作为定义 IdP 的一部分,我需要提供元数据文档文件:
要从 Okta 获取此元数据文档,我需要在 Okta 中定义一个使用 SAML 集成的应用程序(即 AWS 是资源提供者,Okta 是 IdP):
这需要来自 AWS 的 2 个我不知道如何获取的值:
- 单点登录 URL。 Okta UI 提示如下:
The location where the SAML assertion is sent with a HTTP POST. This is often referred to as the SAML Assertion Consumer Service (ACS) URL for your application.
- 受众 URI(SP 实体 ID)。 Okta UI 提示如下:
The application-defined unique identifier that is the intended audience of the SAML assertion. This is most often the SP Entity ID of your application.
How/where 我是否从 AWS 获取这些值?
如果我正在尝试为 Cognito 身份池创建 IdP,并且我需要创建一个 IdP,该 IdP 需要来自 Okta 的值,而 Okta 需要引用 Cognito 身份池的值,我该如何避免循环引用?
问题 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
重要说明:
(1) How to build and run Shibboleth SAML IdP and SP using Docker container 在 GitHub 存储库提供 Amazon AWS SAML 服务提供元数据 "shibboleth-idp-dockerized/ext-conf/metadata/sp-aws-amazon-com.xml" 已通过成功的 Amazon AWS SSO 验证。
Amazon AWS SAML 服务提供元数据提供单点登录 URL 和 Okta SAML IdP 所需的受众 URI(SP 实体 ID)。
(2) Adding SAML Identity Providers to a User Pool 指出用户池的受众 URI/SP 实体 ID( 不是 身份池)是 urn:amazon:cognito:sp:your-User-池 ID。
问题 3:如果我正在尝试为 Cognito 身份池创建 IdP,并且我需要创建一个 IdP,该 IdP 需要来自 Okta 的值,而 Okta 需要引用的值到 Cognito 身份池,如何避免循环引用?
回答:
为避免循环引用,Amazon AWS 为不同的 AWS 账户分配相同的单点登录 URL 和 Cognito 身份池的受众 URI(SP 实体 ID),因此,
(1) 您需要先从 Okta Admin GUI 创建 Amazon AWS SAML SP,
(2) 然后您可以下载 Okta 的 SAML IdP 元数据,这是通过 Amazon AWS Cognito Admin GUI 创建 IdP(如 Okta SAML IdP)所必需的。
注意 Amazon AWS使用属性"awsRoles"(由SAML响应携带)来区分不同的AWS账户。
我想将 Okta 配置为 AWS Cognito 身份池(而非用户池)的 SAML IdP。
创建身份池时,我需要指定与 AWS 账户关联的 SAML IdP。作为定义 IdP 的一部分,我需要提供元数据文档文件:
要从 Okta 获取此元数据文档,我需要在 Okta 中定义一个使用 SAML 集成的应用程序(即 AWS 是资源提供者,Okta 是 IdP):
这需要来自 AWS 的 2 个我不知道如何获取的值:
- 单点登录 URL。 Okta UI 提示如下:
The location where the SAML assertion is sent with a HTTP POST. This is often referred to as the SAML Assertion Consumer Service (ACS) URL for your application.
- 受众 URI(SP 实体 ID)。 Okta UI 提示如下:
The application-defined unique identifier that is the intended audience of the SAML assertion. This is most often the SP Entity ID of your application.
How/where 我是否从 AWS 获取这些值?
如果我正在尝试为 Cognito 身份池创建 IdP,并且我需要创建一个 IdP,该 IdP 需要来自 Okta 的值,而 Okta 需要引用 Cognito 身份池的值,我该如何避免循环引用?
问题 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
重要说明:
(1) How to build and run Shibboleth SAML IdP and SP using Docker container 在 GitHub 存储库提供 Amazon AWS SAML 服务提供元数据 "shibboleth-idp-dockerized/ext-conf/metadata/sp-aws-amazon-com.xml" 已通过成功的 Amazon AWS SSO 验证。
Amazon AWS SAML 服务提供元数据提供单点登录 URL 和 Okta SAML IdP 所需的受众 URI(SP 实体 ID)。
(2) Adding SAML Identity Providers to a User Pool 指出用户池的受众 URI/SP 实体 ID( 不是 身份池)是 urn:amazon:cognito:sp:your-User-池 ID。
问题 3:如果我正在尝试为 Cognito 身份池创建 IdP,并且我需要创建一个 IdP,该 IdP 需要来自 Okta 的值,而 Okta 需要引用的值到 Cognito 身份池,如何避免循环引用?
回答:
为避免循环引用,Amazon AWS 为不同的 AWS 账户分配相同的单点登录 URL 和 Cognito 身份池的受众 URI(SP 实体 ID),因此,
(1) 您需要先从 Okta Admin GUI 创建 Amazon AWS SAML SP,
(2) 然后您可以下载 Okta 的 SAML IdP 元数据,这是通过 Amazon AWS Cognito Admin GUI 创建 IdP(如 Okta SAML IdP)所必需的。
注意 Amazon AWS使用属性"awsRoles"(由SAML响应携带)来区分不同的AWS账户。