

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

# 一次性设置直接 IAM 联合应用程序 ADFS
<a name="emergency-access-one-time-setup-direct-IAM-federation-application-in-adfs"></a>

本指南介绍了一次性设置过程，用于配置直接 IAM 联合身份验证，ADFS以便在 IAM Identity Center 不可用 AWS 账户 时启用紧急访问权限。

## 先决条件
<a name="emergency-access-adfs-prerequisites"></a>

如果您计划ADFS使用 AWS 托管 Microsoft AD 进行配置，我们建议您首先[配置多区域复制](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_configure_multi_region_replication.html)，然后在其他区域而不是主区域中继续执行以下步骤，以实现弹性。

## 规划您的活动目录组命名惯例
<a name="emergency-access-adfs-plan-naming"></a>

使用特定的命名模式创建 AD 组，从而实现群组名称和 AWS IAM 角色之间的自动匹配。

**群组命名格式**：`AWS-<AccountNumber>-<RoleName>`

示例请参见 [如何设计紧急角色、帐户和组映射](emergency-access-mapping-design.md) 下图中的紧急帐户。当用户被分配到该组时，他们被授予对账户中`EmergencyAccess_Role1_RO`角色的访问权限`123456789012`。如果用户与多个群组关联，他们会看到可用角色列表， AWS 账户 并可以选择要扮演的角色。

## AWS 配置
<a name="emergency-access-adfs-aws-configuration"></a>

完整的设置包括紧急访问帐户和工作负载帐户中的配置。有关整体设置的说明，请参见[如何设计紧急角色、帐户和组映射](emergency-access-mapping-design.md)。

1. [创建 SAML 身份提供商](#emergency-access-adfs-create-saml-provider)

1. [创建紧急访问角色](#emergency-access-adfs-create-roles)

1. [配置工作负载帐户角色](#emergency-access-adfs-configure-workload-accounts)

### 创建 SAML 身份提供商
<a name="emergency-access-adfs-create-saml-provider"></a>

在紧急访问账户中，按照在 IAM 中创建 SAML 身份提供商中的步骤在 IAM 中[创建 SAML 身份提供商](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html)。从您的ADFS服务器下载所需的元数据：

`https://<yourADFSserverFQDN>/FederationMetadata/2007-06/FederationMetadata.xml`

### 创建紧急访问角色
<a name="emergency-access-adfs-create-roles"></a>

使用 SAML 2.0 Federation 作为可信实体类型，在紧急账户中@@ [创建紧急访问角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html)。选择您在上一步中创建的 SAML 2.0 提供商。

**注意事项：**
+ **包括您运营的所有区域 — 选择您**拥有活跃工作负载的每个区域，以确保联合在区域中断期间保持可用。
+ **即使您在单个区域中运营，也至少配置一个额外的区域终端节点**，例如，如果您仅在其中操作`us-east-1`，则添加`us-west-2`为辅助终端节点。即使没有任何工作负载，您也可以将 IdP 故障转移到 `us-west-2` SAML 登录终端节点并仍然可以访问您的`us-east-1`资源。`us-west-2`
+ **同时启用非区域终端节点和区域终端节点** — 尽管非区域终端节点 (`https://signin.aws.amazon.com/saml`) 高度可用，但它托管在单个终端节点中 AWS 区域`us-east-1`，而区域端点 (`https://<region>.signin.aws.amazon.com/saml`) 则通过减少对单个全球终端节点的依赖来提高弹性。

**配置信任策略**

有关具有多个登录区域终端节点的信任策略示例，请参阅。[在 Okta 中一次性设置直接 IAM 联合身份验证应用程序](emergency-access-one-time-setup-direct-IAM-federation-application-in-idp.md)将示例区域终端节点和 SAML 提供商替换为您的终端节点和 SAML ARNs 提供商。

**配置权限策略**

有关附加到[在 Okta 中一次性设置直接 IAM 联合身份验证应用程序](emergency-access-one-time-setup-direct-IAM-federation-application-in-idp.md)紧急访问角色的权限策略示例，请参阅。

### 配置工作负载帐户角色
<a name="emergency-access-adfs-configure-workload-accounts"></a>

对于工作负载账户角色，请配置自定义信任策略，允许紧急访问账户中的紧急访问角色代入这些角色。请参阅信任策略示例，其中账户`123456789012`是紧急访问账户。[在 Okta 中一次性设置直接 IAM 联合身份验证应用程序](emergency-access-one-time-setup-direct-IAM-federation-application-in-idp.md)

## 活动目录配置
<a name="emergency-access-adfs-ad-configuration"></a>

以下步骤描述了如何配置 Active Directory 以及如何ADFS进行紧急访问。

1. [创建群组](#emergency-access-adfs-create-groups)

1. [创建信赖方](#emergency-access-adfs-create-relying-party)

1. [创建索赔规则](#emergency-access-adfs-create-claim-rules)

### 创建群组
<a name="emergency-access-adfs-create-groups"></a>

根据前面描述的命名惯例在 Active Directory 中创建紧急群组（例如，`AWS-123456789012-EmergencyAccess_Role1_RO`）。通过现有的配置机制将用户分配到这些群组。

### 创建信赖方
<a name="emergency-access-adfs-create-relying-party"></a>

ADFS联合需要信赖方配置。依赖方是 AWS Security Token Service (AWS STS)，它将身份验证外包给ADFS身份提供者。

1. 在ADFS管理控制台中，使用操作菜单并选择**添加信赖方信任**。添加信赖方时选择 “**声明感知**”。

1. 对于联合元数据，请在 IAM 控制台上输入身份提供商元数据信息中的元数据 URL。例如：

   `https://signin.aws.amazon.com/static/saml/SAMLSPXXXXXX/saml-metadata.xml`

1. 设置信赖方的显示名称（例如，**AWS 账户访问权限**），然后选择**下一步**。

1. 选择您想要允许谁进行访问 AWS。您可以选择特定的群组并定义诸如 MFA 之类的要求。

1. 在 “完成” 页上选择 “**关闭**” 以完成 “添加信赖方信任向导”。 AWS 现在已配置为信赖方。

### 创建索赔规则
<a name="emergency-access-adfs-create-claim-rules"></a>

ADFS使用索赔规则语言在索赔提供者和依赖方之间发出和转换索赔。您需要创建四条声明规则：NameId、RoleSessionName、“获取广告组” 和 “ AWS 访问角色”。

右键单击信赖方，然后选择 “**编辑索赔发放政策**”。选择**添加规则**以添加规则。

**1NameId**.

1. 选择 “**转换传入的声明**”，然后选择 “**下一步**”。

1. 使用以下设置：
   + 声明规则名称：`NameId`
   + 收到的索赔类型：`Windows Account Name`
   + 发出的索赔类型：`Name ID`
   + 传出姓名 ID 格式：`Persistent Identifier`
   + 传递所有索赔值：已选中

1. 选择**确定**。

**2。 RoleSessionName**

1. 选择**添加规则**。

1. 在 “声明规则模板” 列表中，选择 “**将 LDAP 属性作为声明发送**”。

1. 使用以下设置：
   + 声明规则名称：`RoleSessionName`
   + 属性存储：`Active Directory`
   + LDAP 属性：`E-Mail-Addresses`
   + 发出的索赔类型：`https://aws.amazon.com/SAML/Attributes/RoleSessionName`

1. 选择**确定**。

**3。获取广告组**

1. 选择**添加规则**。

1. 在 “索赔规则模板” 列表中，选择 “**使用自定义规则发送索赔**”，然后选择 “**下一步**”。

1. 在 “声明规则名称” 中`Get AD Groups`，输入，然后在 “自定义规则” 中输入以下内容：

   ```
   c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
   => add(store = "Active Directory", types = ("http://temp/variable"), query = ";tokenGroups;{0}", param = c.Value);
   ```

   此自定义规则使用声明规则语言中的脚本，该脚本检索经过身份验证的用户所属的所有群组，并将其置于名`http://temp/variable`为的临时声明中。
**注意**  
确保尾部没有空格，以免出现意外结果。

**4。角色属性**

1. 选择**添加规则**。

1. 在 “索赔规则模板” 列表中，选择 “**使用自定义规则发送索赔**”，然后选择 “**下一步**”。

1. 在 “声明规则名称” 中`Roles`，输入，然后在 “自定义规则” 中输入以下内容：

   ```
   c:[Type == "http://temp/variable", Value =~ "(?i)^AWS-([\d]{12})"]
   => issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value = RegExReplace(c.Value, "AWS-([\d]{12})-", "arn:aws:iam::$1:saml-provider/<ADFS>,arn:aws:iam::$1:role/"));
   ```

   此自定义规则使用正则表达式将表单`AWS-<Account Number>-<Role Name>`中的每个群组成员资格转换为预期的 IAM 角色 ARN 和 IAM 联合提供商 ARN 表单。 AWS 
**注意**  
在上面的示例规则语言中，`ADFS`表示在身份提供商设置中给 SAML 身份提供商的 AWS 逻辑名称。根据您在 IAM 控制台中为身份提供商选择的逻辑名称进行更改。

## 测试配置
<a name="emergency-access-adfs-test-configuration"></a>

通过在进行身份验证来测试解决方案是否有效。`https://<yourADFSserverFQDN>/adfs/ls/IdpInitiatedSignOn.aspx`从站点的下拉列表中选择您创建的信赖方的名称。

## 更新中的默认 SAML 断言端点 ADFS
<a name="emergency-access-adfs-update-saml-endpoint"></a>

**重要**  
在中配置信赖方信任时ADFS，SAML Assertion 端点默认为`https://signin.aws.amazon.com/`它不是全局终端节点，位于中。`us-east-1`我们建议您将默认终端节点修改为不同于 IAM Identity Center 弹性配置的区域终端节点。例如，如果您的 IAM 身份中心部署在中`us-east-1`并且您也在中进行操作`us-west-2`，请将默认 SAML Assertion 使用者终端节点更改为。`https://us-west-2.signin.aws.amazon.com/saml`

1. 在信赖方信任上选择 “**属性**”，然后转到 “**监控**” 选项卡。清除 “**自动更新信赖方**” 复选框。

1. 前往**终端节点**选项卡，选择您的首选登录端点，然后选择**编辑**。

1. 选中 “将**可信 URL 设置为默认值**” 复选框。选择 “**确定”** 和 “**应用**” 以使设置生效。

**注意**  
大多数都 IdPs 允许您在需要之前停用应用程序集成。我们建议您在 IdP 中保持直接 IAM 联合身份验证应用程序处于停用状态，直到需要紧急访问为止。