

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 設定一次直接 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 Managed Microsoft AD 設定 ，我們建議您先[設定多區域複寫](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_configure_multi_region_replication.html)，並在其他區域中繼續進行以下步驟，而不是在主要區域中設定恢復能力。

## 規劃您的 Active Directory 群組命名慣例
<a name="emergency-access-adfs-plan-naming"></a>

使用特定命名模式建立 AD 群組，以便在群組名稱和 IAM AWS 角色之間自動比對。

**群組命名格式**： `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`) 透過減少對單一全域端點的相依性來改善彈性。

**設定信任政策**

如需具有多個登入區域端點的範例信任政策[在 中一次性設定直接 IAM 聯合應用程式 Okta](emergency-access-one-time-setup-direct-IAM-federation-application-in-idp.md)，請參閱 。將範例區域端點和 SAML 提供者 ARNs 取代為您。

**設定許可政策**

如需連接到緊急存取角色[在 中一次性設定直接 IAM 聯合應用程式 Okta](emergency-access-one-time-setup-direct-IAM-federation-application-in-idp.md)的許可政策範例，請參閱 。

### 設定工作負載帳戶角色
<a name="emergency-access-adfs-configure-workload-accounts"></a>

對於工作負載帳戶角色，請設定自訂信任政策，允許緊急存取帳戶中的緊急存取角色擔任這些角色。如需信任政策[在 中一次性設定直接 IAM 聯合應用程式 Okta](emergency-access-one-time-setup-direct-IAM-federation-application-in-idp.md)範例，其中 帳戶`123456789012`是緊急存取帳戶。

## Active Directory 組態
<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取得 AD 群組和角色以供 AWS 存取。

在依賴方上按一下滑鼠右鍵，然後選擇**編輯宣告發行政策**。選擇**新增規則**以新增規則。

**1NameId**. 

1. 選取**轉換傳入宣告**，然後選擇**下一步**。

1. 請使用下列設定：
   + 宣告規則名稱： `NameId`
   + 傳入宣告類型： `Windows Account Name`
   + 傳出宣告類型： `Name ID`
   + 傳出名稱 ID 格式： `Persistent Identifier`
   + 傳遞所有宣告值：已檢查

1. 選擇**確定**。

**2. RoleSessionName** 

1. 選擇 **Add Rule** (新增規則)。

1. 在宣告規則範本清單中，選取**傳送 LDAP 屬性做為宣告**。

1. 請使用下列設定：
   + 宣告規則名稱： `RoleSessionName`
   + 屬性存放區： `Active Directory`
   + LDAP 屬性： `E-Mail-Addresses`
   + 傳出宣告類型： `https://aws.amazon.com/SAML/Attributes/RoleSessionName`

1. 選擇**確定**。

**3. 取得 AD 群組**

1. 選擇 **Add Rule** (新增規則)。

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. 選擇 **Add Rule** (新增規則)。

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 預期的 `AWS-<Account Number>-<Role Name>` IAM 角色 ARN 和 IAM 聯合提供者 ARN 表單。
**注意**  
在上述規則語言範例中， `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 聲明端點預設為 `https://signin.aws.amazon.com/`，其不是全域端點且位於 中`us-east-1`。建議您將預設端點修改為與 IAM Identity Center 設定彈性不同的區域端點。例如，如果您的 IAM Identity Center 部署在 中，`us-east-1`而且您也在 中操作`us-west-2`，請將預設 SAML 聲明取用者端點變更為 `https://us-west-2.signin.aws.amazon.com/saml`。

1. 選擇依賴方信任的**屬性**，然後前往**監控**索引標籤。清除核取方塊**自動更新依賴方**。

1. 前往**端點**索引標籤，選取您偏好的登入端點，然後選擇**編輯**。

1. 選取核取方塊 **將信任的 URL 設定為預設值**。選擇**確定**並**套用**設定以生效。

**注意**  
大多數 IdPs可讓您將應用程式整合保持停用狀態，直到需要為止。我們建議您在 IdP 中停用直接 IAM 聯合應用程式，直到需要緊急存取為止。