为单点登录 (SSO) 配置您的身份提供商 - 研究与工程工作室

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为单点登录 (SSO) 配置您的身份提供商

Research and Engineering Studio 与任何 SAML 2.0 身份提供商集成,以验证用户对 RES 门户 这些步骤提供了与您选择的 SAML 2.0 身份提供商集成的指导。如果您打算使用 IAM 身份中心,请参阅使用 IAM 身份中心设置单点登录 (SSO)

注意

在 IDP SAML 断言和 Active Directory 中,用户的电子邮件地址必须匹配。您需要将您的身份提供商与 Active Directory 连接起来,并定期同步用户。

配置您的身份提供商

本节提供了使用 RES Amazon Cognito 用户池中的信息配置身份提供商的步骤。

  1. RES 假设您有一个 AD(AWS 托管 AD 或自配置 AD),其用户身份允许访问 RES 门户和项目。将您的 AD 连接到您的身份服务提供商并同步用户身份。请查看您的身份提供商的文档,了解如何连接您的 AD 和同步用户身份。例如,请参阅《AWS IAM Identity Center 用户指南》中的使用 Active Directory 作为身份源

  2. 在您的身份提供商 (IdP) 中为 RES 配置 SAML 2.0 应用程序。此配置需要以下参数:

    • SAML 重定向网址 — 您的 IdP 用来向服务提供商发送 SAML 2.0 响应的网址。

      注意

      根据 IdP 的不同,SAML 重定向网址可能有不同的名称:

      • 应用程序 URL

      • 断言消费者服务 (ACS) 网址

      • ACS POST 绑定网址

      获取网址
      1. 管理员或集群管理员身份登录 RES。

      2. 导航到 “环境管理” ⇒ “常规设置” ⇒ “身份提供者”。

      3. 选择 SAML 重定向网址

       

    • SAML 受众 URI — 服务提供商方面 SAML 受众实体的唯一 ID。

      注意

      根据 IdP 的不同,SAML 受众 URI 的名称可能有所不同:

      • ClientID

      • 应用程序 SAML 受众

      • SP 实体 ID

      按以下格式提供输入。

      urn:amazon:cognito:sp:user-pool-id
      要查找您的 SAML 受众 URI
      1. 管理员或集群管理员身份登录 RES。

      2. 导航到 “环境管理” ⇒ “常规设置” ⇒ “身份提供者”。

      3. 选择用户池 ID

  3. 发布到 RES 的 SAML 断言必须将以下内容 fields/claims 设置为用户的电子邮件地址:

    • SAML 主题或姓名 ID

    • SAML 电子邮件

  4. 根据配置,您的 IdP 会添加 fields/claims 到 SAML 断言中。RES 需要这些字段。默认情况下,大多数提供商会自动填写这些字段。如果必须对其进行配置,请参阅以下字段输入和值。

    • AudienceRestriction — 设置为 urn:amazon:cognito:sp:user-pool-iduser-pool-id替换为您的 Amazon Cognito 用户池的 ID。

      <saml:AudienceRestriction> <saml:Audience> urn:amazon:cognito:sp:user-pool-id </saml:AudienceRestriction>
    • 响应-设置InResponseTohttps://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>
  5. 如果您的 SAML 应用程序有注销 URL 字段,请将其设置为:。<domain-url>/saml2/logout

     

    获取域名网址
    1. 管理员或集群管理员身份登录 RES。

    2. 导航到 “环境管理” ⇒ “常规设置” ⇒ “身份提供者”。

    3. 选择域名网址

  6. 如果您的 IdP 接受签名证书以建立与 Amazon Cognito 的信任,请下载亚马逊 Cognito 签名证书并将其上传到您的 IdP 中。

     

    获取签名证书
    1. 打开 Amazon Cognito 控制台

    2. 选择您的用户池。您的用户池应该是res-<environment name>-user-pool

    3. 选择 “登录体验” 选项卡。

    4. 联合身份提供商登录部分,选择查看签名证书

      Amazon Cognito 控制台,在所选用户池的联合身份提供者登录部分中带有查看签名证书按钮。

      您可以使用此证书在该信赖方上设置 Active Directory IDP relying party trust、添加和启用 SAML 支持。

      注意

      这不适用于 Keycloak 和 IDC。

    5. 应用程序设置完成后,下载 SAML 2.0 应用程序元数据 XML 或 URL。你将在下一节中使用它。

将 RES 配置为使用您的身份提供商

完成 RES 的单点登录设置
  1. 管理员或集群管理员身份登录 RES。

  2. 导航到 “环境管理” ⇒ “常规设置” ⇒ “身份提供者”。

    RES 中的环境设置用户界面,包括单点登录部分。
  3. 在 “单点登录” 下,选择状态指示器旁边的编辑图标以打开 “单点登录配置” 页面。

    RES 中的单点登录配置用户界面。
    1. 对于身份提供商,请选择 SAML

    2. 在提供商名称中,输入您的身份提供商的唯一名称。

      注意

      不允许使用以下名称:

      • Cognito

      • IdentityCenter

    3. 在 “元数据文档来源” 下,选择相应的选项并上传元数据 XML 文档或提供身份提供商提供的 URL。

    4. 在 “提供商电子邮件属性” 中,输入文本值email

    5. 选择提交

  4. 重新加载环境设置页面。如果配置正确,则启用单点登录。

在非生产环境中配置您的身份提供商

如果您使用提供的外部资源创建了非生产 RES 环境,并将 IAM Identity Center 配置为身份提供商,则可能需要配置其他身份提供商,例如 Okta。RES SSO 启用表单要求提供三个配置参数:

  1. 提供商名称-无法修改

  2. 元数据文档或 URL-可以修改

  3. 提供商电子邮件属性-可以修改

要修改元数据文档和提供者电子邮件属性,请执行以下操作:
  1. 转到 Amazon Cognito 控制台。

  2. 从导航栏中选择 “用户池”。

  3. 选择您的用户池以查看用户池概述

  4. 登录体验选项卡中,前往联合身份提供商登录,然后打开您配置的身份提供商

  5. 通常,您只需要更改元数据并保持属性映射不变。要更新属性映射,请选择编辑。要更新元数据文档,请选择替换元数据

    Amazon Cognito 用户池概述。
  6. 如果您编辑了属性映射,则需要在 DynamoDB 中更新<environment name>.cluster-settings表。

    1. 打开 DynamoDB 控制台,然后从导航栏中选择 “表”

    2. 查找并选择<environment name>.cluster-settings表格,然后从 “操作” 菜单中选择 “浏览项目”。

    3. 在 “扫描或查询项目” 下,转至 “筛选” 并输入以下参数:

      • 属性名称key

      • 价值identity-provider.cognito.sso_idp_provider_email_attribute

    4. 选择运行

  7. 在 “已退回的商品” 下,找到该identity-provider.cognito.sso_idp_provider_email_attribute字符串并选择 “编辑”,修改字符串以匹配您在 Amazon Cognito 中所做的更改。

    Amazon Cognito 更新了 DynamoDB 中返回的筛选条件和项目。

调试 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 身份提供商添加到用户池。