

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

# SAML 2.0 および OAuth 2.0 アプリケーションへのシングルサインオンアクセス
<a name="customermanagedapps-saml2-oauth2"></a>

IAM アイデンティティセンターでは、SAML 2.0 アプリケーションまたは OAuth 2.0 アプリケーションへのシングルサインオンアクセスをユーザーに提供できます。以下のトピックでは、SAML 2.0 と OAuth 2.0 の大まかな概観を説明します。

**Topics**
+ [SAML 2.0](#samlfederationconcept)
+ [OAuth 2.0](#oidc-concept)

## SAML 2.0
<a name="samlfederationconcept"></a>

SAML 2.0 は、SAML 認証機関 (ID プロバイダーまたは IdP) と SAML 2.0 コンシューマー (サービスプロバイダーまたは SP) との間でユーザーに関する情報を渡す SAML アサーションを安全に交換するための業界標準です。IAM Identity Center は、この情報を使用して、 アクセスポータル内でアプリケーションを使用する権限を持つユーザーにフェデレーティッドシングルサインオン AWS アクセスを提供します。

**注記**  
IAM アイデンティティセンターは、SAML アプリケーションからの受信 SAML 認証リクエストの署名の検証をサポートしていません。

## OAuth 2.0
<a name="oidc-concept"></a>

OAuth 2.0 は、アプリケーションがパスワードを共有せずにユーザーデータに安全にアクセスして共有できるようにするプロトコルです。この機能により、アプリケーションによるリソースへのアクセスを、安全かつ標準化された方法でユーザーに許可できます。アクセスは、さまざまな OAuth 2.0 付与フローによって容易になります。

IAM Identity Center を使用すると、パブリッククライアントで実行されるアプリケーションは、ユーザーに代わってプログラムで AWS アカウント および サービスにアクセスするための一時的な認証情報を取得できます。パブリッククライアントは通常、ローカルでアプリケーションを実行するのに使用されるデスクトップ、ノートパソコン、またはその他のモバイルデバイスです。パブリッククライアントで実行されるアプリケーションの例 AWS には、 AWS Command Line Interface (AWS CLI) AWS Toolkit、、 AWS Software Development Kit (SDKs。これらのアプリケーションが認証情報を取得できるように、IAM アイデンティティセンターは次の OAuth 2.0 フローの一部をサポートしています。
+ コード交換用検証キー (PKCE) を使用した認証コードの付与 ([RFC 6749](https://www.rfc-editor.org/rfc/rfc6749#section-4.1) および [RFC 7636](https://www.rfc-editor.org/rfc/rfc7636)）
+ デバイス認可付与 ([RFC 8628](https://datatracker.ietf.org/doc/html/rfc8628))

**注記**  
これらのグラントタイプは、この機能をサポートする AWS のサービス でのみ使用できます。これらのサービスは、すべての AWS リージョンでこの許可タイプをサポートしていない場合があります。リージョンの違い AWS のサービス については、 の関連ドキュメントを参照してください。

OpenID Connect (OIDC) は、OAuth 2.0 フレームワークに基づく認証プロトコルです。OIDC は、認証に OAuth 2.0 を使用する方法を指定します。[IAM アイデンティティセンター OIDC サービス API](https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_Operations.html) を介してアプリケーションは OAuth 2.0 クライアントを登録し、これらのフローのいずれかを使用して IAM アイデンティティセンターで保護された API へのアクセス許可を提供するアクセストークンを取得します。アプリケーションは、目的の API ユーザーを宣言するための[アクセススコープ](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#scopes-oidc)を指定します。IAM アイデンティティセンター管理者として ID ソースを設定した後、アプリケーションのエンドユーザーがまだサインインプロセスを完了していない場合は、サインインプロセスを完了する必要があります。その後、エンドユーザーは、アプリケーションが API コールを行うことに同意する必要があります。これらの API コールは、ユーザー自身の権限を使用して行われます。これに対して IAM アイデンティティセンターは、ユーザーが同意したアクセススコープを含むアクセストークンをアプリケーションに返します。

### OAuth 2.0 許可フローの使用
<a name="using-oauth-flows"></a>

OAuth 2.0 グラントフローは、フローをサポートする AWS マネージドアプリケーションでのみ使用できます。OAuth 2.0 フローを使用するには、IAM Identity Center のインスタンスと、使用するサポートされている AWS マネージドアプリケーションのインスタンスを 1 つの にデプロイする必要があります AWS リージョン。各 のドキュメントを参照して AWS のサービス 、 AWS マネージドアプリケーションのリージョンでの可用性と、使用する IAM アイデンティティセンターのインスタンスを確認してください。

OAuth 2.0 フローを使用するアプリケーションを使用するには、エンドユーザーがアプリケーションの接続先 URL を入力してお使いの IAM アイデンティティセンターインスタンスに登録する必要があります。アプリケーションによっては、管理者が IAM アイデンティティセンターインスタンスの **AWS アクセスポータル URL** または**発行者 URL** をユーザーに提供する必要があります。これらの 2 つの設定は、[IAM アイデンティティセンターコンソール](https://console.aws.amazon.com/singlesignon/)の **[設定]** ページで確認できます。クライアントアプリケーションの設定の詳細については、そのアプリケーションのドキュメントを参照してください。

アプリケーションにサインインして同意するエンドユーザーエクスペリエンスの詳細は、そのアプリケーションが [PKCE を使用した認可コード付与](#auth-code-grant-pkce) と [デバイス認可付与](#device-auth-grant) のいずれを使用しているかどうかによって異なります。

#### PKCE を使用した認可コード付与
<a name="auth-code-grant-pkce"></a>

このフローは、ブラウザを持つデバイスで実行されるアプリケーションによって使用されます。

1. ブラウザウィンドウが開きます。

1. ユーザーがまだ認証されていない場合、ブラウザはユーザーをリダイレクトして認証完了を促します。

1. 認証後、次の項目を表示した同意画面がユーザーに対して表示されます。
   + アプリケーションの名前
   + アプリケーションが使用のための同意を求めるアクセス範囲

1. ユーザーは同意プロセスをキャンセルすることができます。同意すると、アプリケーションはそのユーザーの持つアクセス許可に基づいてアクセス処理を進めます。

#### デバイス認可付与
<a name="device-auth-grant"></a>

このフローは、ブラウザの有無にかかわらず、デバイスで実行されるアプリケーションで使用できます。アプリケーションがフローを開始すると、アプリケーションは、フローの後半でユーザーが確認する必要がある URL とユーザーコードを表示します。フローを開始するアプリケーションがユーザーが同意したデバイスとは異なるデバイスで実行されている場合に備えて、このユーザーコードが必要となります。このコードにより、ユーザーが他のデバイスで開始したフローに同意していることを保証します。

**注記**  
`device.sso.{{region}}.amazonaws.com` を使用するクライアントがある場合は、コード交換 (PKCE) の証明キーを使用するように認可フローを更新する必要があります。IAM アイデンティティセンターでの MFA の詳細については、「*AWS Command Line Interface ユーザーガイド*」の「[AWS CLIを使用した多要素認証](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html)」を参照してください。

1. ブラウザを持つデバイスからフローが開始されると、ブラウザウィンドウが開きます。フローがブラウザを持たないデバイスで開始された場合、ユーザーは別のデバイスでブラウザを開き、アプリケーションが提示した URL に移動する必要があります。

1. いずれの場合も、ユーザーが認証されていない場合、ブラウザはユーザーをリダイレクトして認証完了を促します。

1. 認証後、次の項目を表示した同意画面がユーザーに対して表示されます。
   + アプリケーションの名前
   + アプリケーションが使用のための同意を求めるアクセス範囲
   + アプリケーションがユーザーに提示したユーザーコード

1. ユーザーは同意プロセスをキャンセルすることができます。同意すると、アプリケーションはそのユーザーの持つアクセス許可に基づいてアクセス処理を進めます。

### アクセススコープ
<a name="scopes-oidc"></a>

*スコープ*は、OAuth 2.0 フローを介してアクセスできるサービスへのアクセスを定義します。スコープは、リソースサーバーとも呼ばれるサービスが、アクションやサービスリソースに関連する権限をグループ化する方法であり、OAuth 2.0 クライアントがリクエストできる操作を大まかに指定します。OAuth 2.0 クライアントが [IAM アイデンティティセンター OIDC サービス](https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html)に登録すると、クライアントは意図されるアクションを宣言するスコープを指定します。これに対してユーザーは同意する必要があります。

OAuth 2.0 クライアントは、[「OAuth 2.0 (RFC6749)」のセクション 3.3](https://www.rfc-editor.org/rfc/rfc6749.html#section-3.3) で定義されている `scope` 値を使用して、アクセストークンにリクエストされるアクセス権限を指定します。クライアントがアクセストークンをリクエストする際には、最大 25 件のスコープを指定できます。PKCE またはデバイス認可付与フローで認証コード付与中にユーザーが同意すると、IAM アイデンティティセンターは返されるアクセストークンにスコープをエンコードします。

AWS は、サポート対象の IAM アイデンティティセンターにスコープを追加します AWS のサービス。次の表に、パブリッククライアントを登録する際に IAM アイデンティティセンター OIDC サービスがサポートするスコープを示します。

#### パブリッククライアントの登録時に IAM Identity Center OIDC サービスがサポートするアクセススコープ
<a name="supported-access-scopes"></a>


****  

| スコープ | 説明 | がサポートするサービス | 
| --- | --- | --- | 
| sso:account:access | IAM Identity Center が管理するアカウントとアクセス権限セットにアクセスします。 | IAM アイデンティティセンター | 
| codewhisperer:analysis | Kiro コード分析へのアクセスを有効にします。 | AWS ビルダー ID および IAM Identity Center | 
| codewhisperer:completions | Kiro インラインコード提案へのアクセスを有効にします。 | AWS ビルダー ID および IAM Identity Center | 
| codewhisperer:conversations | Kiro チャットへのアクセスを有効にします。 | AWS ビルダー ID および IAM Identity Center | 
| codewhisperer:taskassist | ソフトウェア開発のために Kiro エージェントへのアクセスを有効にします。 | AWS ビルダー ID および IAM Identity Center | 
| codewhisperer:transformations | コード変換のために Kiro エージェントへのアクセスを有効にします。 | AWS ビルダー ID および IAM Identity Center | 
| codecatalyst:read\_write | Amazon CodeCatalyst リソースの読み取りと書き込みが可能なため、既存のすべてのリソースにアクセスできます。 | AWS ビルダー ID および IAM Identity Center | 
| verified\_access:application:connect | 有効 AWS Verified Access | AWS Verified Access | 
| redshift:connect | Amazon Redshift に接続する | Amazon Redshift | 
| datazone:domain:access | DataZone ドメイン実行ロールにアクセスする | Amazon DataZone | 
| nosqlworkbench:datamodeladviser | データモデルの作成と読み取り | NoSQL Workbench | 
| transform:read\_write | コード AWS 変換のために変換エージェントへのアクセスを有効にする | AWS 変換 | 