

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

# IAM Identity Center 憑證提供者
<a name="feature-sso-credentials"></a>

**注意**  
如需了解設定頁面配置或解譯以下 **Support AWS SDKs和工具**資料表的說明，請參閱 [了解本指南的設定頁面](settings-reference.md#settingsPages)。

此身分驗證機制使用 AWS IAM Identity Center 為您的程式碼取得 AWS 服務 的單一登入 (SSO) 存取權。

**注意**  
在 AWS SDK API 文件中，IAM Identity Center 憑證提供者稱為 SSO 憑證提供者。

啟用 IAM Identity Center 之後，您可以為共用 AWS `config`檔案中的設定定義設定檔。此設定檔用於連線至 IAM Identity Center 存取入口網站。當使用者成功向 IAM Identity Center 進行身分驗證時，入口網站會傳回與該使用者相關聯之 IAM 角色的短期憑證。若要了解 SDK 如何從組態取得臨時登入資料並將其用於 AWS 服務 請求，請參閱 [如何解決 AWS SDKs IAM Identity Center 身分驗證](understanding-sso.md)。

透過 `config` 檔案設定 IAM Identity Center 的方式有兩種：
+ **（建議） SSO 權杖提供者組態** – 延長工作階段持續時間。包括對自訂工作階段持續時間的支援。
+ **傳統不可重新整理組態** – 使用固定的八小時工作階段。

在這兩種組態中，您需要在工作階段過期時再次登入。

下列兩個指南包含有關 IAM Identity Center 的其他資訊：
+ [AWS IAM Identity Center 使用者指南](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)
+ [AWS IAM Identity Center 入口網站 API 參考](https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/Welcome.html)

如需SDKs和工具如何使用和使用此組態重新整理登入資料的深入探討，請參閱 [如何解決 AWS SDKs IAM Identity Center 身分驗證](understanding-sso.md)。

## 先決條件
<a name="feature-sso-credentials-prereq"></a>

您必須先啟用 IAM Identity Center。如需啟用 IAM Identity Center 身分驗證的詳細資訊，請參閱*AWS IAM Identity Center 《 使用者指南*》中的[啟用 AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html)。

**注意**  
或者，如需此頁面詳細說明的完整先決條件**和**必要的共用`config`檔案組態，請參閱設定 的引導說明[使用 IAM Identity Center 驗證 AWS SDK 和工具](access-sso.md)。

## SSO 權杖提供者組態
<a name="sso-token-config"></a>

當您使用 SSO 權杖提供者組態時，軟體 AWS 開發套件或工具會自動重新整理工作階段，直到延長工作階段期間為止。如需工作階段持續時間和最長持續時間的詳細資訊，請參閱*AWS IAM Identity Center 《 使用者指南*》中的[設定 AWS 存取入口網站和 IAM Identity Center 整合應用程式的工作階段持續時間](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-user-session.html)。

`config` 檔案的 `sso-session`區段用於將用於取得 SSO 存取權杖的組態變數分組，然後可用於取得 AWS 登入資料。如需 `config` 檔案內本節的詳細資訊，請參閱 [組態檔案的格式](file-format.md#file-format-config)。

下列共用`config`檔案範例使用`dev`設定檔來設定 SDK 或工具，以請求 IAM Identity Center 登入資料。

```
[profile {{dev}}]
sso_session = {{my-sso}}
sso_account_id = {{111122223333}}
sso_role_name = {{SampleRole}}

[sso-session {{my-sso}}]
sso_region = {{us-east-1}}
sso_start_url = {{https://my-sso-portal.awsapps.com/start}}
sso_registration_scopes = {{sso:account:access}}
```

上述範例顯示您定義 `sso-session`區段，並將其與設定檔建立關聯。一般而言， `sso_account_id`和 `sso_role_name` 必須在 `profile`區段中設定，以便 SDK 可以請求 AWS 登入資料。`sso_region`、 `sso_start_url`和 `sso_registration_scopes` 必須在 `sso-session`區段中設定。

`sso_account_id` 和 `sso_role_name` 並非 SSO 字符組態的所有案例都需要。如果您的應用程式只使用 AWS 服務 支援承載身分驗證，則不需要傳統 AWS 登入資料。承載身分驗證是一種 HTTP 身分驗證結構描述，使用稱為承載字符的安全字符。在這種情況下，`sso_account_id` 和 `sso_role_name` 並非必要資訊。請參閱個別 AWS 服務 指南，判斷服務是否支援承載字符授權。

註冊範圍會設定為 的一部分`sso-session`。範圍是 中的一種機制OAuth 2.0，用於限制應用程式對使用者帳戶的存取。先前的範例會設定 `sso_registration_scopes`以提供列出帳戶和角色的必要存取權。

下列範例示範如何在多個設定檔中重複使用相同的`sso-session`組態。

```
[profile {{dev}}]
sso_session = {{my-sso}}
sso_account_id = {{111122223333}}
sso_role_name = {{SampleRole}}

[profile prod]
sso_session = {{my-sso}}
sso_account_id = {{111122223333}}
sso_role_name = {{SampleRole2}}

[sso-session {{my-sso}}]
sso_region = {{us-east-1}}
sso_start_url = {{https://my-sso-portal.awsapps.com/start}}
sso_registration_scopes = {{sso:account:access}}
```

身分驗證字符會快取至`~/.aws/sso/cache`目錄下的磁碟，並以工作階段名稱為基礎的檔案名稱。

## 舊版不可重新整理的配置
<a name="sso-legacy"></a>

使用舊版不可重新整理的組態，不支援自動字符重新整理。我們建議您[SSO 權杖提供者組態](#sso-token-config)改用 。

若要使用舊版不可重新整理組態，您必須在設定檔中指定下列設定：
+ `sso_start_url`
+ `sso_region`
+ `sso_account_id`
+ `sso_role_name`

您可以使用 `sso_start_url`和 `sso_region`設定來指定設定檔的使用者入口網站。您可以使用 `sso_account_id`和 `sso_role_name`設定指定許可。

下列範例會設定 `config` 檔案中的四個必要值。

```
[profile {{my-sso-profile}}]
sso_start_url = {{https://my-sso-portal.awsapps.com/start}}
sso_region = {{us-west-2}}
sso_account_id = {{111122223333}}
sso_role_name = {{SSOReadOnlyRole}}
```

身分驗證字符會快取至 `~/.aws/sso/cache`目錄下的磁碟，並以 為基礎的檔案名稱`sso_start_url`。

## IAM Identity Center 憑證提供者設定
<a name="feature-sso-credentials-profile"></a>

使用下列項目設定此功能：

**`sso_start_url` - 共用 AWS `config`檔案設定**  
指向您組織的 IAM Identity Center 發行者 URL 或存取入口網站 URL 的 URL。如需詳細資訊，請參閱*AWS IAM Identity Center 《 使用者指南*》中的[使用 AWS 存取入口網站](https://docs.aws.amazon.com/singlesignon/latest/userguide/using-the-portal.html)。  
 若要尋找此值，請開啟 [IAM Identity Center 主控台](https://console.aws.amazon.com/singlesignon)、檢視**儀表板**、尋找**AWS 存取入口網站 URL**。  
+ 或者，從 **2.22.0** 版開始 AWS CLI，您可以改為使用**AWS 發行者 URL** 的值。

**`sso_region` - 共用 AWS `config`檔案設定**  
包含 IAM Identity Center 入口網站主機 AWS 區域 的 ，亦即您在啟用 IAM Identity Center 之前選取的區域。這與您的預設 AWS 區域無關，並且可以不同。  
如需 AWS 區域 及其代碼的完整清單，請參閱《》中的[區域端點](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints)*Amazon Web Services 一般參考*。若要尋找此值，請開啟 [IAM Identity Center 主控台](https://console.aws.amazon.com/singlesignon)、檢視**儀表板**和尋找**區域**。

**`sso_account_id` - 共用 AWS `config`檔案設定**  
透過 AWS Organizations 服務 AWS 帳戶 新增用於身分驗證之 的數值 ID。  
若要查看可用帳戶的清單，請前往 [IAM Identity Center 主控台](https://console.aws.amazon.com/singlesignon)並開啟**AWS 帳戶**頁面。您也可以在*AWS IAM Identity Center 入口網站 API 參考*中使用 [ListAccounts](https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/API_ListAccounts.html) API 方法查看可用帳戶的清單。例如，您可以呼叫 AWS CLI 方法 [list-accounts](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sso/list-accounts.html)。

**`sso_role_name` - 共用 AWS `config`檔案設定**  
佈建為 IAM 角色的許可集名稱，定義使用者產生的許可。角色必須存在於 AWS 帳戶 指定的 中`sso_account_id`。使用角色名稱，而非角色 Amazon Resource Name (ARN)。  
許可集會連接 IAM 政策和自訂許可政策，並定義使用者對其指派的存取層級 AWS 帳戶。  
若要查看每個 的可用許可集清單 AWS 帳戶，請前往 [IAM Identity Center 主控台](https://console.aws.amazon.com/singlesignon)並開啟**AWS 帳戶**頁面。選擇 AWS 帳戶 表格中列出的正確許可集名稱。您也可以在*AWS IAM Identity Center 入口網站 API 參考*中使用 [ListAccountRoles](https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/API_ListAccountRoles.html) API 方法查看可用許可集的清單。例如，您可以呼叫 AWS CLI 方法 [list-account-roles](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sso/list-account-roles.html)。

**`sso_registration_scopes` - 共用 AWS `config`檔案設定**  
要授權給 的有效範圍字串逗號分隔清單`sso-session`。應用程式可以請求一個或多個範圍，則核發給應用程式的存取權杖僅限於授予的範圍。必須`sso:account:access`授予 的最小範圍，才能從 IAM Identity Center 服務取得重新整理權杖。如需可用存取範圍選項的清單，請參閱*AWS IAM Identity Center 《 使用者指南*》中的[存取範圍](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#oidc-concept)。  
這些範圍定義為已註冊 OIDC 用戶端和用戶端擷取的存取字符進行授權所需請求的許可。範圍授權對 IAM Identity Center 承載字符授權端點的存取。  
此設定不適用於舊版不可重新整理組態。使用舊版組態發行的權杖僅限於`sso:account:access`隱含範圍。

## 支援 AWS SDKs和工具
<a name="feature-sso-credentials-sdk-compat"></a>

下列 SDKs 支援本主題中所述的功能和設定。會記下任何部分例外狀況。 適用於 Java 的 AWS SDK 和 適用於 Kotlin 的 AWS SDK 僅支援任何 JVM 系統屬性設定。


| SDK | 支援 | 備註或更多資訊 | 
| --- | --- | --- | 
| [AWS CLI  ](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [適用於 C\+\+ 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 是 |  | 
| [適用於 Go V2 的 SDK (1.x)](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 是 |  | 
| [適用於 Go 的 SDK 1.x (V1)](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 是 | 若要使用共用config檔案設定，您必須開啟從組態檔案載入；請參閱[工作階段](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)。 | 
| [適用於 Java 的 SDK 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 是 | credentials 檔案中也支援組態值。 | 
| [適用於 Java 的 SDK 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 |  | 
| [適用於 JavaScript 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 是 |  | 
| [適用於 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 是 |  | 
| [適用於 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 是 |  | 
| [適用於 .NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 是 |  | 
| [適用於 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 是 |  | 
| [適用於 PHP 的 SDK 3.x](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 是 |  | 
| [適用於 Python 的 SDK (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 |  | 
| [適用於 Ruby 的 SDK 3.x](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 是 |  | 
| [適用於 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 部分 | 僅限舊版不可重新整理組態。 | 
| [適用於 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 是 |  | 
| [PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 是 |  | 
| [PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 是 |  | 