

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

# 身份管理
<a name="manage-users"></a>

研究与工程工作室可以使用任何符合 SAML 2.0 标准的身份提供商。要使用 Amazon Cognito 作为本机用户目录，允许用户使用 Co VDIs gnito 用户身份登录门户网站和 Linux，请参阅。[设置亚马逊 Cognito 用户](setting-up-cognito-users.md)如果您使用外部资源部署 RES 或计划使用 IAM 身份中心，请参阅[使用 IAM 身份中心设置单点登录 (SSO)](sso-idc.md)。如果您有自己的符合 SAML 2.0 标准的身份提供商，请参阅[为单点登录 (SSO) 配置您的身份提供商](configure-id-federation.md)。

**Topics**
+ [设置亚马逊 Cognito 用户](setting-up-cognito-users.md)
+ [活动目录同步](active-directory-sync.md)
+ [使用 IAM 身份中心设置单点登录 (SSO)](sso-idc.md)
+ [为单点登录 (SSO) 配置您的身份提供商](configure-id-federation.md)
+ [为用户设置密码](setting-user-passwords.md)

# 设置亚马逊 Cognito 用户
<a name="setting-up-cognito-users"></a>

研究与工程工作室 (RES) 允许您将 Amazon Cognito 设置为本机用户目录。这允许用户使用 Amazon Cognito 用户身份登录门户网站和基于 Linux VDIs 的门户。管理员可以使用 AWS 控制台中的 csv 文件将多个用户导入用户池。有关批量用户导入的更多详情，请参阅 *Amazon Cognito 开发者*指南中的[从 CSV 文件将用户导入用户池](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-using-import-tool.html)。RES 支持同时使用基于 Amazon Cognito 的本地用户目录和 SSO。

## 管理设置
<a name="setting-up-cognito-users-admin"></a>

**作为 RES 管理员，要将 RES 环境配置为使用 Amazon Cognito 作为用户目录，请在**身份**管理页面上切换**使用 Amazon Cognito 作为用户**目录按钮，该页面可从 “环境管理” 页面访问。**要允许用户自行注册，请在同一页面上切换**用户自助注册**按钮。

![\[显示 cognito 目录设置的身份管理页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/id-management-cognito-directory.png)


## 用户 up/sign 登录流程
<a name="setting-up-cognito-users-user-signin"></a>

如果启用了**用户自助注册**，则可以向用户提供您的 Web 应用程序的 URL。在那里，用户会找到一个选项，上面写着 “**还不是用户？” 在这里注册**。

![\[用户登录页面，可选择自行注册\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/user-sign-up.png)


## 注册流程
<a name="setting-up-cognito-users-signup"></a>

选择 “**还不是用户” 的用户？ 在此处注册**将被要求输入他们的电子邮件和密码以创建帐户。

![\[为用户自行注册创建账户页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/create-account.png)


作为注册流程的一部分，系统将要求用户输入电子邮件中收到的验证码以完成注册过程。

![\[验证码输入页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/verify-email.png)


如果禁用了自助注册，用户将看不到注册链接。管理员必须在 RES 之外的 Amazon Cognito 中配置用户。（请参阅 *Amazon Cognito 开发者指南*中的以[管理员身份创建用户账户](https://docs.aws.amazon.com/cognito/latest/developerguide/how-to-create-user-accounts.html)。）

![\[验证码输入页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/user-sign-in.png)


## 登录页面选项
<a name="setting-up-cognito-users-login"></a>

如果同时启用 SSO 和 Amazon Cognito，则会出现一个**使用组织 SSO 登录的**选项。当用户单击该选项时，它会将他们重新定向到其 SSO 登录页面。默认情况下，如果启用 Amazon Cognito，则用户将使用 Amazon Cognito 进行身份验证。

![\[用户登录页面，提供注册、验证账户或使用组织 SSO 登录的选项\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/org-sso-sign-in.png)


## 约束
<a name="setting-up-cognito-users-constraints"></a>
+ 您的 Amazon Cognito **群组名称**最多可以包含六个字母；只接受小写字母。
+ Amazon Cognito 注册不允许使用两个用户名相同但域名不同的电子邮件地址。
+ 如果同时启用 Active Directory 和 Amazon Cognito，并且系统检测到用户名重复，则只允许活动目录用户进行身份验证。管理员应采取措施避免在 Amazon Cognito 及其活动目录之间配置重复的用户名。
+ 由于 RES 不支持基于 Amazon Cognito 的 Windows 实例进行基于亚马逊 Cognito 的身份验证， VDIs 因此不允许 Cognito 用户启动基于 Windows 的身份验证。

## Amazon Cognito 用户的管理员群组
<a name="admin-group-cognito-users-sync"></a>

默认情况下，RES 授予`admins`组内的 Cognito 用户管理员权限。要将用户添加到 Cognito `admins` 群组，请执行以下操作：

1. 导航到 [Amazon Cognito 控制台](https://console.aws.amazon.com/cognito/home)，然后选择用于 RES 的现有用户池。

1. 导航到 “**用户管理**” 下的 “**群组**”，然后选择 “**创建群组”。**

1. 在**创建群组**页面的群**组名称中，**输入`admins`。

1. 选择您创建的`admins`群组，然后选择**将用户添加到群组以**添加 Cognito 用户。

1. 按照以下步骤手动启动 Cognito 同步。[同步](#setting-up-cognito-users-sync)

成功同步 Amazon Cognito 后，添加到`admins`群组的用户将获得管理员权限。

## 同步
<a name="setting-up-cognito-users-sync"></a>

RES 每小时都会将其数据库与来自 Amazon Cognito 的用户和群组信息同步。任何属于 “管理员” 组的用户都将获得其中的sudo权限。 VDIs

您也可以从 Lambda 控制台手动启动同步。

**手动启动同步过程：**

1. 打开 [Lambda 控制台](https://console.aws.amazon.com/lambda)。

1. 搜索 Cognito 同步 Lambda。此 Lambda 遵循以下命名约定:. `{RES_ENVIRONMENT_NAME}_cognito-sync-lambda` 

1. 选择 “**测试**”。

1. 在 “**测试事件**” 部分，选择右上角的 “**测试**” 按钮。事件正文格式无关紧要。

## Cognito 的安全注意事项
<a name="setting-up-cognito-users-security"></a>

在 2024.12 版本之前，默认启用了作为 Amazon Cognito Plus 计划功能一部分的[用户活动记录](https://docs.aws.amazon.com/cognito/latest/developerguide/feature-plans-features-plus.html)。此功能已从基准部署中删除，以便为想要试用 RES 的客户节省成本。您可以根据需要重新启用此功能，以与贵组织的云安全设置保持一致。

# 活动目录同步
<a name="active-directory-sync"></a>



## 运行时配置
<a name="active-directory-sync-runtime"></a>

在安装过程中，所有与活动目录 (AD) 相关的 AWS CloudFormation 参数都是可选的。

![\[活动目录可选细节\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/active-directory-details.png)


对于运行时提供的任何密钥 ARN（例如，`ServiceAccountCredentialsSecretArn`或`DomainTLSCertificateSecretArn`），请务必在密钥中添加以下标签，以便 RES 获得读取密钥值的权限：
+ 键：`res:EnvironmentName`，值：`<your RES environment name>`
+ 键：`res:ModuleName`，值：`directoryservice`

门户网站中的任何 AD 配置更新都将在下一次预定广告同步（每小时）期间自动获取。用户在更改 AD 配置后可能需要重新配置 SSO（例如，如果他们切换到其他 AD）。

初始安装后，管理员可以在**身份管理**页面下的 RES Web 门户中查看或编辑 AD 配置：

![\[活动目录域配置设置详细信息\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-active-directory-domain.png)


![\[活动目录同步弹出窗口\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/active-directory-synchronization.png)


### 自动加入活动目录
<a name="toggle-join-active-directory"></a>

管理员可以配置 “**自动加入 Active** Directory” 设置，以控制 VDI 启动期间的目录域加入行为。

 **配置选项：**
+  **已启用**-在启动期间自动将 Windows 和 Linux VDIs 加入你的目录域。
+  **已禁用**-关闭自动加入域名。无论是否加入域，Linux 实例都可以启动。Windows 实例需要加入域才能成功启动，因此管理员必须在其自定义启动脚本中包含域加入逻辑。

**重要**  
 如果您禁用此设置，请验证您的 Windows 实例自定义启动脚本是否包含必要的域加入逻辑。

### 其他设置
<a name="active-directory-sync-addl-settings"></a>

**筛选条件**

管理员可以使用 “用户筛选器” 和 “群组筛选器” 选项**筛选要同步的用户****或群组**。筛选器必须遵循 [LDAP 筛选器语法](https://ldap.com/ldap-filters/)。过滤器示例如下：

```
(sAMAccountname=<user>)
```

**自定义 SSSD 参数**

管理员可以提供包含 SSSD 参数和值的键值对字典，以写入集群实例上的 SSSD 配置文件`[domain_type/DOMAIN_NAME]`部分。RES 会自动应用 SSSD 更新，它会在集群实例上重新启动 SSSD 服务并触发 AD 同步过程。

一些常见的自定义 SSSD 设置有：
+ `enumerate`-设置为 “true” 以缓存目录服务中的所有用户和组条目。禁用此功能可能会缩短用户首次登录的延迟。
+ `ldap_id_mapping`-设置为 “true” 以将 LDAP/AD 用户和组映射 IDs 到本地 UIDs 和 Linux 系统 GIDs 上。启用此功能可以提高与现有 POSIX 脚本和应用程序的兼容性。

有关 SSSD 配置文件的完整描述，请参阅 Linux 手册页。`SSSD`

![\[其他 SSSD 配置\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-additional-sssd-config1.png)


SSSD 参数和值必须与 RES SSSD 配置兼容，如下所述：
+ `id_provider`由 RES 内部设置，不得修改。
+ AD 相关配置（包括`ldap_uri``ldap_search_base`、`ldap_default_bind_dn`和）`ldap_default_authtok`是根据提供的其他 AD 配置设置的，不得修改。

以下示例启用 SSSD 日志的调试级别：

![\[显示输入的新密钥和值对的其他 SSSD 配置\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-additional-sssd-config2.png)


## 初始广告同步后的电子邮件更新（版本 2025.09 及更高版本）
<a name="ad-sync-update-email"></a>

如果 Active Directory 用户的电子邮件地址已更改，管理员可以手动启动 AD 同步，或者等待下一次预定的 AD 同步，以获取更改并将其同步到 RES。

## 如何手动启动或停止同步（版本 2025.03 及更高版本）
<a name="active-directory-sync-start-stop"></a>

导航到**身份管理**页面，然后在 A **ctive Directory 域**容器中选择 “**启动 AD 同步**” 按钮，按需触发 AD 同步。

![\[活动目录域配置\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-ad-directory-sync1.png)


要停止正在进行的 AD 同步，请在 Ac **tive Directory 域**容器中选择 “**停止 AD 同步**” 按钮。

![\[显示停止同步选项的 Active Directory 域配置页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-ad-directory-sync2.png)


您还可以在 Act **ive Directory 域**容器中查看 AD 同步状态和最新同步时间。

![\[显示最新同步时间的活动目录域配置页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-ad-directory-sync3.png)


## 如何手动运行同步（版本 2024.12 和 2024.12.01）
<a name="active-directory-sync-manually"></a>

Active Directory 同步过程已从集群管理器基础设施主机转移到后台的一次性亚马逊弹性容器服务 (ECS) 任务。该过程计划每小时运行一次，您可以在`<res-environment-name>-ad-sync-cluster`集群下的 Amazon ECS 控制台中找到正在运行的 ECS 任务。

**要手动启动它，请执行以下操作：**

1. 导航到 [Lambda 控制台](https://console.aws.amazon.com/lambda)并搜索名为的 lambda。`<res-environment>-scheduled-ad-sync`

1. **打开 Lambda 函数并转到测试** 

1. 在**事件 JSON** 中输入以下内容：

   ```
   {
       "detail-type": "Scheduled Event"
   }
   ```

1. 选择**测试**。

1. 在 → 日志**组 **CloudWatch**→ 下查看正在运行的 AD Sync 任务的日志**`/<environment-name>/ad-sync`。您将看到每个正在运行的 ECS 任务的日志。选择最新的，查看日志。

**注意**  
如果您更改 AD 参数或添加 AD 过滤器，RES 将根据新指定的参数添加新用户，并删除之前已同步但不再包含在 LDAP 搜索空间中的用户。
RES 无法移除主动分配给项目的用户或群组。要让 RES 将用户从环境中移除，必须将其从项目中移除。

## SSO 配置
<a name="active-directory-sync-sso-config"></a>

提供 AD 配置后，用户必须设置单点登录 (SSO)，才能以 AD 用户身份登录 RES Web 门户。SSO 配置已从 **“常规设置”** 页面移至新的**身份管理**页面。有关设置 SSO 的更多信息，请参阅[身份管理](manage-users.md)。

# 使用 IAM 身份中心设置单点登录 (SSO)
<a name="sso-idc"></a>

如果您还没有将身份中心连接到托管 Active Directory，请从开始[步骤 1：设置身份中心](#set-up-identity-center)。如果您已经将身份中心与托管的 Active Directory 连接在一起，请从开始[步骤 2：Connect 连接到身份中心](#connect-identity-center)。

**注意**  
如果您要部署到某个 GovCloud 区域，请在部署 Research and Engineering Studio 的 AWS GovCloud (US) 分区账户中设置 SSO。

## 步骤 1：设置身份中心
<a name="set-up-identity-center"></a>

### 启用 IAM Identity Center
<a name="enabling-identity-center"></a>

1. 登录 [AWS Identity and Access Management 控制台](https://console.aws.amazon.com/iam)。

1. 打开**身份中心**。

1. 请选择**启用**。

1. 选择 “**启用方式**” AWS Organizations。

1. 选择**继续**。

**注意**  
请确保您所在的区域与托管活动目录所在的区域相同。

### 将 IAM 身份中心连接到托管活动目录
<a name="connecting-identity-center-ad"></a>

启用 IAM Identity Center 后，请完成以下推荐的设置步骤：

1. 在导航窗格中，选择**设置**。

1. 在 “**身份来源**” 下，选择 “**操作**”，然后选择 “**更改身份来源**”。

1. 在 “**现有目录**” 下，选择您的目录。

1. 选择**下一步**。

1. 查看您的更改并在确认框**ACCEPT**中输入。

1. 选择**更改身份源**。

### 将用户和群组同步到身份中心
<a name="syncing-identity-center"></a>

所做的更改完成后，将出现一个绿色的确认横幅。[将 IAM 身份中心连接到托管活动目录](#connecting-identity-center-ad)

1. 在确认横幅中，选择**启动引导式设置**。

1. 在**配置属性映射**中，选择**下一步**。

1. 在 “**用户**” 部分下，输入要同步的用户。

1. 选择**添加**。

1. 选择**下一步**。

1. 查看您的更改，然后选择**保存配置**。

1. 同步过程可能需要几分钟。如果您收到有关用户未同步的警告消息，请选择**恢复同步**。

### 启用用户
<a name="enabling-users"></a>

1. 从菜单中选择 “**用户**”。

1. 选择要为其启用访问权限的用户。

1. 选择**启用用户访问权限**。

## 步骤 2：Connect 连接到身份中心
<a name="connect-identity-center"></a>

### 在 IAM 身份中心设置应用程序
<a name="setup-application-identity-center"></a>

1. 打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon/)。

1. 选择**应用程序**。

1. 选择**添加应用程序**。

1. 在 “**设置” 偏好设置**下，选择 “**我有要设置的应用程序**”。

1. 在**应用程序类型**下，选择 **SAML 2.0**。

1. 选择**下一步**。

1. 输入您要使用的显示名称和描述。

1. 在 **IAM 身份中心元数据**下，复制 **IAM 身份中心 SAML 元数据**文件的链接。在使用 RES 门户配置 IAM 身份中心时，您将需要这个。

1. 在 “**应用程序属性**” 下，输入您的**应用程序起始 URL**。例如 `<your-portal-domain>/sso`。

1. 在 “**应用程序 ACS URL**” 下，输入来自 RES 门户的重定向 URL。要找到这个：

   1. 在 “**环境管理**” 下，选择 “**常规设置”**。

   1. 选择 “**身份提供商**” 选项卡。

   1. 在 “**单点登录**” 下，您将找到 **SAML 重定向网址**。

1. 在 “**应用程序 SAML 受众**” 下，输入 Amazon Cognito URN。

   要创建骨灰盒，请执行以下操作：

   1. 在 RES 门户中，打开 **“常规设置”**。

   1. 在 “**身份提供商**” 选项卡下，找到**用户池 ID**。

   1. 将**用户池 ID** 添加到以下字符串：

      ```
      urn:amazon:cognito:sp:<user_pool_id>
      ```

1. **输入亚马逊 Cognito URN 后，选择提交。**

### 为应用程序配置属性映射
<a name="configure-attribute-mappings"></a>

1. 在**身份中心**中，打开您创建的应用程序的详细信息。

1. 选择**操作**，然后选择**编辑属性映射**。

1. 在**主题**下，输入 **\$1\$1user:email\$1**。

1. 在 “**格式**” 下，选择 “**电子邮件地址**”。

1. 选择**添加新属性映射**。

1. **在应用程序的用户属性**下，输入 “电子邮件”。

1. 在 **IAM Identity Center 中映射到此字符串值或用户属性**下，输入**\$1\$1user:email\$1**。

1. 在 “**格式**” 下，输入 “未指定”。

1. 选择**保存更改**。

### 在 IAM 身份中心向应用程序添加用户
<a name="add-users-to-application"></a>

1. 在 Identity Center 中，为你创建的应用程序打开**分配的用户**，然后选择**分配用户**。

1. 选择要分配应用程序访问权限的用户。

1. 选择 **分配用户**。

### 在 RES 环境中设置 IAM 身份中心
<a name="setup-sso-environment"></a>

1. 在 “研究与工程工作室” 环境中，在 “**环境管理**” 下，打开 **“常规设置”**。

1. 打开 “**身份提供商**” 选项卡。

1. 在 “**单点登录**” 下，选择 “**编辑”（在 “****状态**” 旁边）。

1. 在表格中填写以下信息：

   1. 选择 **SAML**。

   1. 在**提供商名称**下，输入用户友好的名称。

   1. 选择**输入元数据文档端点 URL**。

   1. 输入您在期间复制的 URL [在 IAM 身份中心设置应用程序](#setup-application-identity-center)。

   1. 在**提供商电子邮件属性**下，输入 “电子邮件”。

   1. 选择**提交**。

1. 刷新页面并检查**状态**是否显示为已启用。

# 为单点登录 (SSO) 配置您的身份提供商
<a name="configure-id-federation"></a>

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

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

**Topics**
+ [配置您的身份提供商](#configure-id-federation_config-idp)
+ [将 RES 配置为使用您的身份提供商](#configure-id-federation_config-res)
+ [在非生产环境中配置您的身份提供商](#configure-id-federation-demo-env)
+ [调试 SAML IdP 问题](#configure-id-federation_debug)

## 配置您的身份提供商
<a name="configure-id-federation_config-idp"></a>

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

1. RES 假设您有一个 AD（AWS 托管 AD 或自配置 AD），其用户身份允许访问 RES 门户和项目。将您的 AD 连接到您的身份服务提供商并同步用户身份。请查看您的身份提供商的文档，了解如何连接您的 AD 和同步用户身份。例如，请参阅《*AWS IAM Identity Center 用户指南》*中的[使用 Active Directory 作为身份源](https://docs.aws.amazon.com/singlesignon/latest/userguide/gs-ad.html)。

1. 在您的身份提供商 (IdP) 中为 RES 配置 SAML 2.0 应用程序。此配置需要以下参数：
   + **SAML 重定向网址** — 您的 IdP 用来向服务提供商发送 SAML 2.0 响应的网址。
**注意**  
根据 IdP 的不同，SAML 重定向网址可能有不同的名称：  
应用程序 URL
断言消费者服务 (ACS) 网址
ACS POST 绑定网址

**获取网址**

     1. 以**管理员或**集群**管理员**身份登录 RES。

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

     1. 选择 **SAML 重定向网址**。
   + **SAML 受众 URI** — 服务提供商方面 SAML 受众实体的唯一 ID。
**注意**  
根据 IdP 的不同，SAML 受众 URI 的名称可能有所不同：  
ClientID
应用程序 SAML 受众
SP 实体 ID

     按以下格式提供输入。

     ```
     urn:amazon:cognito:sp:user-pool-id
     ```

**要查找您的 SAML 受众 URI**

     1. 以**管理员或**集群**管理员**身份登录 RES。

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

     1. 选择**用户池 ID**。

1. 发布到 RES 的 SAML 断言必须将以下内容 fields/claims 设置为用户的电子邮件地址：
   + SAML 主题或姓名 ID
   + SAML 电子邮件

1. 根据配置，您的 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/idpresponse`。*user-pool-domain*替换为您的 Amazon Cognito 用户池的域名。

     ```
     <saml2p:Response 
       Destination="https://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>
     ```

1. 如果您的 SAML 应用程序有注销 URL 字段，请将其设置为:。`<domain-url>/saml2/logout`

**获取域名网址**

   1. 以**管理员或**集群**管理员**身份登录 RES。

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

   1. 选择**域名网址**。

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

**获取签名证书**

   1. 打开 [Amazon Cognito 控制台](https://console.aws.amazon.com/cognito/v2/idp/user-pools/)。

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

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

   1. 在**联合身份提供商登录**部分，选择**查看签名证书**。  
![\[Amazon Cognito 控制台，在所选用户池的联合身份提供者登录部分中带有查看签名证书按钮。\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/cognito-user-pool-signing-cert.png)

      您可以使用此证书在该信赖方上设置 Active Directory IDP `relying party trust`、添加和启用 SAML 支持。
**注意**  
这不适用于 Keycloak 和 IDC。

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

## 将 RES 配置为使用您的身份提供商
<a name="configure-id-federation_config-res"></a>

**完成 RES 的单点登录设置**

1. 以**管理员或**集群**管理员**身份登录 RES。

1. 导航到 “**环境管理**” ⇒ **“常规设置” ⇒ “****身份提供者**”。  
![\[RES 中的环境设置用户界面，包括单点登录部分。\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/environment-settings.png)

1. 在 “**单点登录**” 下，选择状态指示器旁边的编辑图标以打开 “**单点登录配置**” 页面。  
![\[RES 中的单点登录配置用户界面。\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/sso-config.png)

   1. 对于**身份提供商**，请选择 **SAML**。

   1. 在提供**商名称**中，输入您的身份提供商的唯一名称。
**注意**  
不允许使用以下名称：  
Cognito
IdentityCenter

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

   1. 在 “提供**商电子邮件属性”** 中，输入文本值`email`。

   1. 选择**提交**。

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

## 在非生产环境中配置您的身份提供商
<a name="configure-id-federation-demo-env"></a>

如果您使用提供的[外部资源](prerequisites.md#external-resources)创建了非生产 RES 环境，并将 IAM Identity Center 配置为身份提供商，则可能需要配置其他身份提供商，例如 Okta。RES SSO 启用表单要求提供三个配置参数：

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

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

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

**要修改元数据文档和提供者电子邮件属性，请执行以下操作：**

1.  转到 Amazon Cognito 控制台。

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

1. 选择您的用户池以查看**用户池概述**。

1. 在**登录体验**选项卡中，前往**联合身份提供商登录，然后打开您配置的身份提供商**。

1. 通常，您只需要更改元数据并保持属性映射不变。要更新**属性映射**，请选择**编辑**。要更新**元数据文档**，请选择**替换元数据**。  
![\[Amazon Cognito 用户池概述。\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-attributemetadata.png)

1. 如果您编辑了属性映射，则需要在 DynamoDB 中更新`<environment name>.cluster-settings`表。

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

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

   1. 在 “**扫描或查询项目**” 下，转至 “**筛选**” 并输入以下参数：
      + **属性名称** — `key`
      + **价值** — `identity-provider.cognito.sso_idp_provider_email_attribute`

   1. 选择**运行**。

1. 在 “**已退回的商品**” 下，找到该`identity-provider.cognito.sso_idp_provider_email_attribute`字符串并选择 “**编辑”**，修改字符串以匹配您在 Amazon Cognito 中所做的更改。  
![\[Amazon Cognito 更新了 DynamoDB 中返回的筛选条件和项目。\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-scanqueryitems.png)

## 调试 SAML IdP 问题
<a name="configure-id-federation_debug"></a>

**SAML-tracer** — 你可以在 Chrome 浏览器中使用这个扩展程序来跟踪 SAML 请求并检查 SAML 断言值。如需了解更多信息，请参阅 Chrome [网上应用店中的 SAML-Tracer](https://chromewebstore.google.com/detail/saml-tracer/mpdajninpobndbfcldcmbpnnbhibjmch?pli=1)。

**SAML 开发人员工具** — OneLogin 提供可用于解码 SAML 编码值和检查 SAML 断言中必填字段的工具。有关更多信息，请参阅 OneLogin 网站上的 [Base 64 Decode \$1 Inflate](https://www.samltool.com/decode.php)。

**Amazon CloudWatch 日志** — 您可以在 “日志” 中查看 RES CloudWatch 日志中是否有错误或警告。您的日志位于名称格式为的日志组中`/res-environment-name/cluster-manager`。

**Amazon Cognito 文档** *— 有关 SAML 与 Amazon Cognito 集成的更多信息，请参阅《亚马逊 Cognito 开发者指南[》中的将 SAML 身份提供商添加到](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-saml-idp.html)用户池。*

# 为用户设置密码
<a name="setting-user-passwords"></a>

1. 在[Directory Service 控制台中，](https://console.aws.amazon.com/directoryservicev2/)为创建的堆栈选择目录。

1. 在 “**操作**” 菜单下，选择 “**重置用户密码**”。

1. 选择用户并输入新密码。

1. 选择**重置密码**。