本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为单点登录 (SSO) 配置您的身份提供商
Research and Engineering Studio 与任何 SAML 2.0 身份提供商集成,以验证用户对 RES 门户 这些步骤提供了与您选择的 SAML 2.0 身份提供商集成的指导。如果您打算使用 IAM 身份中心,请参阅使用 IAM 身份中心设置单点登录 (SSO)。
注意
在 IDP SAML 断言和 Active Directory 中,用户的电子邮件地址必须匹配。您需要将您的身份提供商与 Active Directory 连接起来,并定期同步用户。
配置您的身份提供商
本节提供了使用 RES Amazon Cognito 用户池中的信息配置身份提供商的步骤。
-
RES 假设您有一个 AD(AWS 托管 AD 或自配置 AD),其用户身份允许访问 RES 门户和项目。将您的 AD 连接到您的身份服务提供商并同步用户身份。请查看您的身份提供商的文档,了解如何连接您的 AD 和同步用户身份。例如,请参阅《AWS IAM Identity Center 用户指南》中的使用 Active Directory 作为身份源。
-
在您的身份提供商 (IdP) 中为 RES 配置 SAML 2.0 应用程序。此配置需要以下参数:
-
SAML 重定向网址 — 您的 IdP 用来向服务提供商发送 SAML 2.0 响应的网址。
注意
根据 IdP 的不同,SAML 重定向网址可能有不同的名称:
应用程序 URL
断言消费者服务 (ACS) 网址
ACS POST 绑定网址
获取网址
以管理员或集群管理员身份登录 RES。
导航到 “环境管理” ⇒ “常规设置” ⇒ “身份提供者”。
选择 SAML 重定向网址。
-
SAML 受众 URI — 服务提供商方面 SAML 受众实体的唯一 ID。
注意
根据 IdP 的不同,SAML 受众 URI 的名称可能有所不同:
ClientID
应用程序 SAML 受众
SP 实体 ID
按以下格式提供输入。
urn:amazon:cognito:sp:
user-pool-id
要查找您的 SAML 受众 URI
以管理员或集群管理员身份登录 RES。
导航到 “环境管理” ⇒ “常规设置” ⇒ “身份提供者”。
选择用户池 ID。
-
-
发布到 RES 的 SAML 断言必须将以下内容 fields/claims 设置为用户的电子邮件地址:
-
SAML 主题或姓名 ID
-
SAML 电子邮件
-
-
根据配置,您的 IdP 会添加 fields/claims 到 SAML 断言中。RES 需要这些字段。默认情况下,大多数提供商会自动填写这些字段。如果必须对其进行配置,请参阅以下字段输入和值。
-
AudienceRestriction — 设置为
urn:amazon:cognito:sp:
。user-pool-id
user-pool-id
替换为您的 Amazon Cognito 用户池的 ID。<saml:AudienceRestriction> <saml:Audience> urn:amazon:cognito:sp:
user-pool-id
</saml:AudienceRestriction> -
响应-设置
InResponseTo
为https://
。user-pool-domain
/saml2/idpresponseuser-pool-domain
替换为您的 Amazon Cognito 用户池的域名。<saml2p:Response Destination="http://
user-pool-domain
/saml2/idpresponse" ID="id123" InResponseTo="_dd0a3436-bc64-4679-a0c2-cb4454f04184" IssueInstant="Date-time stamp" Version="2.0" xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:xs="http://www.w3.org/2001/XMLSchema"> -
SubjectConfirmationData— 设置
Recipient
为您的用户池saml2/idpresponse
终端节点和InResponseTo
原始 SAML 请求 ID。<saml2:SubjectConfirmationData InResponseTo="_dd0a3436-bc64-4679-a0c2-cb4454f04184" NotOnOrAfter="Date-time stamp" Recipient="https://
user-pool-domain
/saml2/idpresponse"/> -
AuthnStatement— 按以下方式进行配置:
<saml2:AuthnStatement AuthnInstant="2016-10-30T13:13:28.152TZ" SessionIndex="32413b2e54db89c764fb96ya2k" SessionNotOnOrAfter="2016-10-30T13:13:28"> <saml2:SubjectLocality /> <saml2:AuthnContext> <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml2:AuthnContextClassRef> </saml2:AuthnContext> </saml2:AuthnStatement>
-
-
如果您的 SAML 应用程序有注销 URL 字段,请将其设置为:。
<domain-url>
/saml2/logout获取域名网址
-
以管理员或集群管理员身份登录 RES。
-
导航到 “环境管理” ⇒ “常规设置” ⇒ “身份提供者”。
-
选择域名网址。
-
-
如果您的 IdP 接受签名证书以建立与 Amazon Cognito 的信任,请下载亚马逊 Cognito 签名证书并将其上传到您的 IdP 中。
获取签名证书
-
选择您的用户池。您的用户池应该是
res-
。<environment name>
-user-pool -
选择 “登录体验” 选项卡。
-
在联合身份提供商登录部分,选择查看签名证书。
您可以使用此证书在该信赖方上设置 Active Directory IDP
relying party trust
、添加和启用 SAML 支持。注意
这不适用于 Keycloak 和 IDC。
-
应用程序设置完成后,下载 SAML 2.0 应用程序元数据 XML 或 URL。你将在下一节中使用它。
将 RES 配置为使用您的身份提供商
完成 RES 的单点登录设置
-
以管理员或集群管理员身份登录 RES。
-
导航到 “环境管理” ⇒ “常规设置” ⇒ “身份提供者”。
-
在 “单点登录” 下,选择状态指示器旁边的编辑图标以打开 “单点登录配置” 页面。
-
对于身份提供商,请选择 SAML。
-
在提供商名称中,输入您的身份提供商的唯一名称。
注意
不允许使用以下名称:
Cognito
IdentityCenter
-
在 “元数据文档来源” 下,选择相应的选项并上传元数据 XML 文档或提供身份提供商提供的 URL。
-
在 “提供商电子邮件属性” 中,输入文本值
email
。 -
选择提交。
-
-
重新加载环境设置页面。如果配置正确,则启用单点登录。
在非生产环境中配置您的身份提供商
如果您使用提供的外部资源创建了非生产 RES 环境,并将 IAM Identity Center 配置为身份提供商,则可能需要配置其他身份提供商,例如 Okta。RES SSO 启用表单要求提供三个配置参数:
-
提供商名称-无法修改
-
元数据文档或 URL-可以修改
-
提供商电子邮件属性-可以修改
要修改元数据文档和提供者电子邮件属性,请执行以下操作:
-
转到 Amazon Cognito 控制台。
-
从导航栏中选择 “用户池”。
-
选择您的用户池以查看用户池概述。
-
在登录体验选项卡中,前往联合身份提供商登录,然后打开您配置的身份提供商。
-
通常,您只需要更改元数据并保持属性映射不变。要更新属性映射,请选择编辑。要更新元数据文档,请选择替换元数据。
-
如果您编辑了属性映射,则需要在 DynamoDB 中更新
<environment name>.cluster-settings
表。-
打开 DynamoDB 控制台,然后从导航栏中选择 “表”。
-
查找并选择
<environment name>.cluster-settings
表格,然后从 “操作” 菜单中选择 “浏览项目”。 -
在 “扫描或查询项目” 下,转至 “筛选” 并输入以下参数:
-
属性名称 —
key
-
价值 —
identity-provider.cognito.sso_idp_provider_email_attribute
-
-
选择运行。
-
-
在 “已退回的商品” 下,找到该
identity-provider.cognito.sso_idp_provider_email_attribute
字符串并选择 “编辑”,修改字符串以匹配您在 Amazon Cognito 中所做的更改。
调试 SAML IdP 问题
SAML-tracer — 你可以在 Chrome 浏览器中使用这个扩展程序来跟踪 SAML 请求并检查 SAML 断言值。如需了解更多信息,请参阅 Chrome 网上应用店中的 SAML-Tracer
SAML 开发人员工具 — OneLogin 提供可用于解码 SAML 编码值和检查 SAML 断言中必填字段的工具。有关更多信息,请参阅 OneLogin 网站上的 Base 64 Decode + Inflate
Amazon CloudWatch 日志 — 您可以在 “日志” 中查看 RES CloudWatch 日志中是否有错误或警告。您的日志位于名称格式为的日志组中/
。res-environment-name
/cluster-manager
Amazon Cognito 文档 — 有关 SAML 与 Amazon Cognito 集成的更多信息,请参阅《亚马逊 Cognito 开发者指南》中的将 SAML 身份提供商添加到用户池。