

 適用於 .NET 的 AWS SDK V3 已進入維護模式。

我們建議您遷移至 [適用於 .NET 的 AWS SDK V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html)。如需如何遷移的其他詳細資訊和資訊，請參閱我們的[維護模式公告](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/)。

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

# 使用 設定 SDK 身分驗證 AWS
<a name="creds-idc"></a>

在使用 進行開發 AWS 時，您必須建立程式碼向 進行身分驗證的方式 AWS 服務。視環境和您可用的存取權而定，您可以透過不同方式設定 AWS 資源的程式設計 AWS 存取。

若要查看 SDK 的各種身分驗證方法，請參閱 *AWS SDKs和工具參考指南中的*[身分驗證和存取](https://docs.aws.amazon.com/sdkref/latest/guide/access.html)。

本主題假設新的使用者正在本機開發，其雇主尚未提供身分驗證方法，且將使用 AWS IAM Identity Center 取得臨時登入資料。如果您的環境不適用這些假設，則本主題中的有些資訊可能不適用您的環境，或者有些資訊可能已經提供給您。

 設定此環境需要幾個步驟，總結如下：

1. [使用主控台登入資料登入](#login-con-creds)

1. [啟用和設定 IAM Identity Center](#idc-config-sso)

1. [設定 SDK 以使用 IAM Identity Center。](#idc-config-sdk)

1. [啟動 AWS 存取入口網站工作階段](#idc-start-portal)

## 使用主控台登入資料登入
<a name="login-con-creds"></a>

您可以使用現有的 AWS 管理主控台登入憑證，以程式設計方式存取 AWS 服務。在瀏覽器型身分驗證流程之後， AWS 會產生臨時憑證，可用於 CLI AWS AWS Tools for PowerShell 和適用於 .NET v3 的 AWS SDK 等本機開發工具。

透過此程序，您可以使用在初始帳戶設定期間建立的根登入資料、IAM 使用者或來自身分提供者的聯合身分，以及 AWS CLI 進行身分驗證，或 AWS Tools for PowerShell 自動為您管理臨時登入資料。這種方法消除了在本機存放長期登入資料的需求，進而增強安全性。

當您從 AWS CLI 執行 `aws login`命令時，您可以從作用中主控台工作階段中選取 ，或透過瀏覽器型身分驗證流程登入，這樣會自動產生臨時登入資料。臨時登入資料字符將在 15 分鐘內過期，但適用於 .NET v3 的 AWS SDK 會在請求期間視需要自動重新整理字符。

**警告**  
.NET Framework 目標不支援此功能。

**重要**  
如果您使用主控台登入資料進行身分驗證，您的應用程式必須參考下列 NuGet 套件，才能進行 AWS 登入解析：  
**AWSSDK.Signin**
未參考這些套件將導致執行時間例外狀況。
+ [使用 CLI AWS 使用主控台登入資料登入。](https://docs.aws.amazon.com/sdkref/latest/guide/access-login.html)

按照 CLI AWS 上提供的步驟登入後， `config` 檔案看起來會像這樣。

```
[default]
login_session = arn:aws:iam::0123456789012:user/username
region = us-east-1

[my-dev-profile]
login_session = arn:aws:iam::0123456789012:user/username
region = us-east-1
```

## 啟用和設定 IAM Identity Center
<a name="idc-config-sso"></a>

若要使用 IAM Identity Center，必須先啟用和設定它。若要查看如何為 SDK 執行此操作的詳細資訊，請參閱 SDK **和工具參考指南中的 IAM Identity Center 身分驗證主題中的步驟 1**。 [https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html) *AWS SDKs * 具體來說，請遵循**我沒有透過 IAM Identity Center 建立存取權限**下的任何必要說明。

## 設定 SDK 以使用 IAM Identity Center。
<a name="idc-config-sdk"></a>

有關如何設定 SDK 以使用 IAM Identity Center 的資訊，請參閱 SDK *AWS SDKs 和工具參考指南*中 [IAM Identity Center 身分驗證](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html)主題**的步驟 2**。完成此組態之後，您的系統應該包含下列元素：
+ 在執行應用程式之前 AWS CLI，您用來啟動 AWS 存取入口網站工作階段的 。
+ 包含[`[default]`設定檔](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile)的共用 AWS `config`檔案，其中包含一組可從 SDK 參考的組態值。若要尋找此檔案的位置，請參閱 *AWS SDK 和工具參考指南*中的[共用檔案位置](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html)。 適用於 .NET 的 AWS SDK 使用設定檔的 SSO 權杖提供者，在傳送請求至 之前取得登入資料 AWS。該 `sso_role_name` 值是連接到 IAM Identity Center 許可集合的 IAM 角色，應該允許存取應用程式中使用的 AWS 服務 。

  下列範例 `config` 檔案顯示使用 SSO 權杖提供者設定的預設設定檔。設定檔的 `sso_session` 設定是指已命名的 `sso-session` 區段。`sso-session` 區段包含啟動 AWS 存取入口網站工作階段的設定。

  ```
  [default]
  sso_session = my-sso
  sso_account_id = 111122223333
  sso_role_name = SampleRole
  region = us-east-1
  output = json
  
  [sso-session my-sso]
  sso_region = us-east-1
  sso_start_url = https://provided-domain.awsapps.com/start
  sso_registration_scopes = sso:account:access
  ```

**重要**  
如果您使用 AWS IAM Identity Center 進行身分驗證，您的應用程式必須參考下列 NuGet 套件，以便 SSO 解析能夠運作：  
`AWSSDK.SSO`
`AWSSDK.SSOOIDC`
未參考這些套件將導致*執行時間*例外狀況。

## 啟動 AWS 存取入口網站工作階段
<a name="idc-start-portal"></a>

在執行存取的應用程式之前 AWS 服務，您需要 SDK 的作用中 AWS 存取入口網站工作階段，才能使用 IAM Identity Center 身分驗證來解析登入資料。視您設定的工作階段長度而定，您的存取最終會過期，且 SDK 將遇到身分驗證錯誤。若要登入 AWS 存取入口網站，請在 中執行下列命令 AWS CLI。

```
aws sso login
```

由於您有預設的設定檔設定，因此您不需要使用 `--profile` 選項呼叫指令。如果您的 SSO 權杖提供者組態使用已命名的設定檔，則命令為 `aws sso login --profile named-profile`。

若要測試您是否已經有作用中的工作階段，請執行下列 AWS CLI 命令。

```
aws sts get-caller-identity
```

對此命令的回應，應報告共用 `config` 檔案中設定的 IAM Identity Center 帳戶和許可集合。

**注意**  
如果您已有作用中的 AWS 存取入口網站工作階段並執行 `aws sso login`，則不需要提供登入資料。  
登入程序可能會提示您允許 AWS CLI 存取您的資料。由於 AWS CLI 建置在適用於 Python 的 SDK 之上，因此許可訊息可能包含`botocore`名稱的變化。

## 其他資訊
<a name="idc-additional-info"></a>
+ 如需在開發環境中使用 IAM Identity Center 和 SSO 的詳細資訊，請參閱 [進階身分驗證](advanced-auth.md) 一節[單一登入](sso.md)中的 。此資訊包括替代和更進階的方法，以及向您展示如何使用這些方法的教學課程。
+ 如需 SDK 身分驗證的更多選項，例如使用設定檔和環境變數，請參閱 *AWS SDKs和工具參考指南*中的[組態](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html)章節。
+ 如需了解有關最佳實務的資訊，請參閱 *IAM 使用者指南*中的 [IAM 安全最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。
+ 若要建立短期 AWS 登入資料，請參閱《*IAM 使用者指南*》中的[暫時安全登入](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)資料。
+ 若要瞭解其他憑證提供者，請參閱 *AWS SDK 和工具參考指南*中的[標準化憑證提供者](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html)。