

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS SDKsとツールの IAM Identity Center 認証の解決方法
<a name="understanding-sso"></a>



## IAM Identity Center の関連条項
<a name="ssoterms"></a>

以下の用語は、 AWS IAM アイデンティティセンターの背後にあるプロセスと設定を理解するのに役立ちます。 AWS SDK APIs のドキュメントでは、これらの認証概念の一部に IAM Identity Center とは異なる名前を使用しています。両方の名前を知っておくと役に立ちます。

次の表は、別名の相互関係を示しています。


| IAM アイデンティティセンターの名前 | SDK API の名前 | 説明 | 
| --- | --- | --- | 
| アイデンティティセンター  | sso  |  AWS Single Sign-On の名前は変更されますが、ssoAPI 名前空間は下位互換性のために元の名前を保持します。詳細については、「AWS IAM アイデンティティセンター ユーザーガイド」の「[What is IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed)」(IAM Identity Center とは) を参照してください。 | 
| IAM Identity Center コンソール<br />管理コンソール |   | シングルサインオンの設定に使用するコンソール。 | 
| AWS アクセスポータル URL  |  | IAM Identity Center のアカウントに一意の URL（https://{{xxx}}.awsapps.com/start など）。IAM Identity Center のサインイン認証情報を使用してこのポータルにサインインします。 | 
| IAM Identity Center アクセスポータルセッション  | 認証セッション  | 発信者がベアラーアクセストークンを取得できます。 | 
| アクセス許可設定セッション  |   | SDK が内部的に AWS のサービス 呼び出しに使用する IAM セッション。非公式な議論では、このセッションが誤って「ロールセッション」と呼ばれることがあります。 | 
| アクセス許可セット認証情報  | AWS 認証情報<br />sigv4 認証情報 | SDK がほとんどの AWS のサービス 呼び出し (特にすべての sigv4 AWS のサービス 呼び出し) に実際に使用する認証情報。非公式な議論では、このセッションが誤って「ロール認証情報」と呼ばれることがあります。 | 
| IAM Identity Center 認証情報プロバイダー  | SSO 認証情報プロバイダー  | 認証情報の取得方法（機能を提供するクラスやモジュールなど）。 | 

## の SDK 認証情報解決を理解する AWS のサービス
<a name="idccredres"></a>

IAM Identity Center API は、ベアラートークンの認証情報を sigv4 の認証情報と交換します。ほとんど AWS のサービス は sigv4 APIs、 Amazon CodeWhisperer や などのいくつかの例外があります Amazon CodeCatalyst。以下では、 を通じてアプリケーションコードのほとんどの AWS のサービス 呼び出しをサポートするための認証情報解決プロセスについて説明します AWS IAM アイデンティティセンター。

### AWS アクセスポータルセッションを開始する
<a name="idccredres1"></a>
+ まず、認証情報を使用してセッションにサインインします。
  +  AWS Command Line Interface () で `aws sso login` コマンドを使用しますAWS CLI。アクティブなセッションがまだない場合は、新しい IAM Identity Center セッションが開始されます。
+ 新しいセッションを開始すると、IAM Identity Center から更新トークンとアクセストークンを受け取ります。 AWS CLI また、 は SSO キャッシュ JSON ファイルを新しいアクセストークンと更新トークンで更新し、SDKs で使用できるようにします。
+ 既にアクティブなセッションがある場合、 AWS CLI コマンドは既存のセッションを再利用し、既存のセッションの有効期限が切れるたびに期限切れになります。IAM Identity Center セッションの長さを設定する方法については、「 *AWS IAM アイデンティティセンター ユーザーガイド*」の[「ユーザーの AWS アクセスポータルセッションの期間を設定する](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-user-session.html)」を参照してください。
  + 頻繁にサインインする必要性を減らすため、セッションの最大期間が 90 日間に延長されました。

### SDK が AWS のサービス 呼び出しの認証情報を取得する方法
<a name="idccredres2"></a>

SDKsは、サービスごとにクライアントオブジェクトをインスタンス化 AWS のサービス するときに へのアクセスを提供します。共有 AWS `config`ファイルの選択したプロファイルが IAM アイデンティティセンターの認証情報解決用に設定されている場合、IAM アイデンティティセンターを使用してアプリケーションの認証情報を解決します。
+ [認証情報解決プロセス](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain)は、ランタイムにクライアントが作成されるときに完了します。

IAM Identity Center のシングルサインオンを使用して sigv4 API の認証情報を取得するために、SDK は IAM Identity Center のアクセストークンを使用して IAM セッションを取得します。この IAM セッションはアクセス許可セットセッションと呼ばれ、IAM ロールを引き受けることで SDK AWS へのアクセスを提供します。
+  アクセス許可セットのセッション期間は IAM Identity Center のセッション期間とは独立して設定されます。
  + アクセス許可セットのセッション期間を設定する方法については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[セッション期間の設定](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html)」を参照してください。
+  アクセス許可セット認証情報は、ほとんどの AWS SDK API ドキュメントで*AWS 認証情報*と *sigv4 認証情報*とも呼ばれることに注意してください。

アクセス許可セットの認証情報は、IAM Identity Center API の [getRoleCredentials](https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/API_GetRoleCredentials.html) への呼び出しから SDK に返されます。SDK のクライアントオブジェクトは、引き受けた IAM ロールを使用して AWS のサービス、アカウントのバケットを一覧表示するように Amazon S3 に依頼するなど、 を呼び出します。クライアントオブジェクトは、アクセス許可セットセッションの有効期限が切れるまで、それらのアクセス許可セット認証情報を使用して操作を続けることができます。

### セッションの有効期限と更新
<a name="idccredres3"></a>

[SSO トークンプロバイダー設定](feature-sso-credentials.md#sso-token-config) を使用する場合、IAM Identity Center から取得した 1 時間単位のアクセストークンは、更新トークンを使用して自動的に更新されます。
+ SDK がアクセストークンを使用しようとしたときにそのアクセストークンの有効期限が切れている場合、SDK は更新トークンを使用して新しいアクセストークンの取得を試みます。IAM Identity Center は、更新トークンを IAM Identity Center のアクセスポータルのセッション期間と比較します。更新トークンの有効期限が切れていない場合、IAM Identity Center は別のアクセストークンで応答します。
+ このアクセストークンは、既存のクライアントのアクセス許可セットセッションを更新したり、新しいクライアントの認証情報を解決したりするために使用できます。

ただし、IAM Identity Center アクセスポータルセッションの有効期限が切れると、新しいアクセストークンは付与されません。そのため、アクセス許可セットの有効期間は更新できません。既存のクライアントのキャッシュされたアクセス許可セットセッションの長さがタイムアウトになると、有効期限が切れます（アクセスも失われます）。

IAM Identity Center セッションの有効期限が切れるとすぐに、新しいクライアントを作成するコードは認証に失敗します。これは、アクセス許可セットの認証情報がキャッシュされないためです。有効なアクセストークンが得られるまで、コードで新しいクライアントを作成したり、認証情報解決プロセスを完了したりすることはできません。

まとめると、SDK が新しいアクセス許可セット認証情報を必要とする場合、SDK はまず有効な既存の認証情報を確認し、それらを使用します。これは、認証情報が新しいクライアントのものか、認証情報の有効期限が切れた既存のクライアントのものかに関係なく適用されます。認証情報が見つからない、または有効でない場合、SDK は IAM Identity Center API を呼び出して新しい認証情報を取得します。API を呼び出すには、アクセストークンが必要です。アクセストークンの有効期限が切れている場合、SDK は更新トークンを使用して、IAM Identity Center サービスから新しいアクセストークンを取得しようとします。このトークンは、IAM Identity Center アクセスポータルセッションの有効期限が切れていない場合に付与されます。