

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

# SAML プロバイダーをアイデンティティプール IdP として設定する
<a name="saml-identity-provider"></a>

Amazon Cognito アイデンティティプールを使用すると、SAML 2.0 を介して ID プロバイダー (IdP) を使用してユーザーを認証できます。SAML をサポートする IdP を Amazon Cognito で使用して、ユーザーにシンプルなオンボーディングフローを提供することができます。SAML サポート IdP は、ユーザーが引き受けることができる IAM ロールを指定します。このようにして、さまざまなユーザーがさまざまな権限のセットを受け取ることができます。

## SAML プロバイダーの ID プールの設定
<a name="configure-identity-pool-saml-provider"></a>

次のステップでは、SAML ベースの IdP が使用されるように ID プールを設定する方法について説明します。

**注記**  
SAML プロバイダーをサポートするように ID プールを設定する前に、まず [IAM コンソール](https://console.aws.amazon.com/iam)で SAML ID プロバイダーを設定します。詳細については、*IAM ユーザーガイド*の「[サードパーティーの SAML ソリューションプロバイダーと AWSの統合](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml_3rd-party.html)」を参照してください。

**SAML ID プロバイダー (IdP) を追加するには**

1. [Amazon Cognito コンソール](https://console.aws.amazon.com/cognito/home)で **[ID プールの管理]** をクリックします。アイデンティティプールを選択します。

1. **[ユーザーアクセス]** タブを選択します。

1. **[ID プロバイダーを追加]** を選択します。

1. **SAML** を選択します。

1.  AWS アカウント 内の IAM IdP から **SAML ID プロバイダー**を選択します。新しい SAML プロバイダーを追加する場合は、**[新しいプロバイダの作成]** を選択して IAM コンソールに移動します。

1. Amazon Cognito がこのプロバイダーで認証されたユーザーに認証情報を発行するときにリクエストするロールを設定するには、[**ロール設定**] を設定します。

   1. その IdP のユーザーに、**認証済みロール**を設定したときに設定した**デフォルトロール**を割り当てることも、**ルール付きのロールを選択**することもできます。

     1. **[ルールを使用してロールを選択]** を選択した場合は、ユーザー認証のソース**クレーム**、クレームを比較する**演算子**、選択したロールと一致させる**値**、および**ロールの割り当て**が一致したときに割り当てる**ロール**を入力します。別の条件に基づいて追加のルールを作成するには、**[別のものを追加]** を選択します。

     1. **[ロールの解決]** を選択します。ユーザーのクレームがルールに合わない場合は、認証情報を拒否するか、**認証済みロール**の認証情報を発行できます。

1. Amazon Cognito がこのプロバイダーで認証されたユーザーに認証情報を発行するときに割り当てるプリンシパルタグを変更するには、**[アクセスコントロールの属性]** を設定します。

   1. プリンシパルタグを適用しない場合は、**[非アクティブ]** を選択します。

   1. `sub` および `aud` クレームに基づいてプリンシパルタグを適用するには、**[デフォルトマッピングを使用]** を選択します。

   1. プリンシパルタグへの属性の独自のカスタムスキーマを作成するには、**[カスタムマッピングを使用]** を選択します。次に、タグに表示したい各**クレーム**から取得する**タグキー**を入力します。

1. **[変更を保存]** を選択します。

## SAML IdP の設定
<a name="configure-your-saml-identity-provider"></a>

SAML プロバイダーを作成したら、SAML ID プロバイダーを設定し、IdP と AWSの間に証明書利用者の信頼を追加します。多くの IdP では、IdP が XML ドキュメントから証明書利用者情報と証明書を読み取るために使用できる URL を指定できます。には AWS、[https://signin.aws.amazon.com/static/saml-metadata.xml](https://signin.aws.amazon.com/static/saml-metadata.xml) を使用できます。次のステップでは、IdP からの SAML アサーションレスポンスを設定して、 AWS に必要なクレームを入力します。クレーム設定の詳細については、「[認証レスポンスの SAML アサーションを設定する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_assertions.html)」を参照してください。

SAML IdP の SAML メタデータに複数の署名証明書が含まれている場合、サインイン時に、SAML アサーションが SAML メタデータ内のいずれかの証明書と一致すると、SAML アサーションは有効であるとアイデンティティプールは判断します。

## SAML を使用したユーザーロールのカスタマイズ
<a name="role-customization-saml"></a>

Amazon Cognito ID で SAML を使用する場合、エンドユーザーのロールをカスタマイズできます。Amazon Cognito は、SAML ベースの IdP で[拡張フロー](authentication-flow.md)のみをサポートします。SAML ベースの IdP を使用するために、ID プールに認証されたロールや認証されていないロールを指定する必要はありません。`https://aws.amazon.com/SAML/Attributes/Role` クレーム属性は、カンマ区切りのロールおよびプロバイダー ARN のペアを 1 つ以上指定します。これらは、ユーザーが引き受けることができるロールです。IdP から入手できるユーザー属性情報に基づいてロール属性を設定するように SAML IdP を設定できます。SAML アサーションで複数のロールを受け取る場合は、`getCredentialsForIdentity` を呼び出すときにオプションの `customRoleArn` パラメータを設定します ロールが SAML アサーションのクレームのロールと一致する場合、ユーザーはこの `customRoleArn` を想定します。

## SAML IdP を使用したユーザーの認証
<a name="authenticate-user-with-saml"></a>

SAML ベースの IdP とフェデレーションするには、ユーザーが login. AWS federation を開始する URL を決定します。 IdP AD FS 2.0 では、URL の形式は `https://<fqdn>/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices` です。

Amazon Cognito に SAML IdP のサポートを追加するには、まず iOS アプリケーションまたは Android アプリケーションから SAML ID プロバイダーを使用してユーザーを認証する必要があります。SAML IdP との統合と認証に使用するコードは、SAML プロバイダーに固有です。ユーザーが認証されたら、Amazon Cognito API を使用して、結果として得られた SAML アサーションを Amazon Cognito アイデンティティに提供できます。

アイデンティティプールの API リクエストの `Logins` マップで SAML アサーションを繰り返したり、*再生*したりすることはできません。SAML アサーションを再生すると、そのアサーション ID は以前の API リクエストの ID と重複します。`Logins` マップ内の SAML アサーションを受け入れることができる API オペレーションとしては、[GetId](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetId.html)、[GetCredentialsForIdentity](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html)、[GetOpenIdToken](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetOpenIdToken.html)、[GetOpenIDTokenForDeveloperIdentity](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetOpenIdTokenForDeveloperIdentity.html) があります。SAML アサーション ID は、ID プール認証フローの API リクエストごとに 1 回再生できます。例えば、同じ SAML アサーションを `GetId` リクエストと後続の `GetCredentialsForIdentity` リクエストでは指定できますが、2 番目の `GetId` リクエストでは指定できません。