

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

# SAML ID プロバイダーの名前と識別子
<a name="cognito-user-pools-managing-saml-idp-naming"></a>

SAML ID プロバイダー (IdP) に名前を付け、IdP 識別子を割り当てると、そのプロバイダーへの、SP が開始したサインインリクエストとサインアウトリクエストのフローを自動化できます。プロバイダーの名前に対する文字列制約の詳細については、[CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html#CognitoUserPools-CreateIdentityProvider-request-ProviderName) の `ProviderName` プロパティを参照してください。

![IdP の識別子とマネージドログインを使用して Amazon Cognito の SP が開始した SAML サインインの認証フロー図。ユーザーは、マネージドログインに E メールアドレスを提供し、Amazon Cognito は、ユーザーを自動的にプロバイダーにリダイレクトします。](http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/images/scenario-authentication-saml-identifier.png)


SAML プロバイダーの識別子を 50 個まで選択することもできます。識別子は、ユーザープール内の IdP のわかりやすい名前であり、ユーザープール内で一意である必要があります。SAML 識別子がユーザーの E メールドメインと一致すると、マネージドログインは、各ユーザーの E メールアドレスをリクエストし、E メールアドレス内のドメインを評価して、ドメインに対応する IdP にユーザーをリダイレクトします。同じ組織で複数のドメインを所有することができるため、1 つの IdP が複数の識別子を持つことができます。

E メールドメイン識別子の使用の有無にかかわらず、マルチテナントアプリケーションの識別子を使用して、ユーザーを正しい IdP にリダイレクトできます。マネージドログインを完全にバイパスする場合は、ユーザーに提示するリンクをカスタマイズすることで、[認可エンドポイント](authorization-endpoint.md) を介してユーザーを IdP に直接リダイレクトできます。識別子を使用してユーザーにサインインし、IdP にリダイレクトするには、最初の認可リクエストのリクエストパラメータに `idp_identifier={{myidp.example.com}}` 形式の識別子を含めます。

ユーザーを IdP に渡す別の方法は、IdP の名前を持つパラメータ `identity_provider` を、次の URL 形式で入力することです。

```
https://{{mydomain.auth.us-east-1.amazoncognito.com}}/oauth2/authorize?
response_type={{code}}&
identity_provider={{MySAMLIdP}}&
client_id={{1example23456789}}&
redirect_uri={{https://www.example.com}}
```

ユーザーが SAML IdP でサインインすると、IdP は、`HTTP POST` 本文内の SAML レスポンスを使用して `/saml2/idpresponse` エンドポイントにリダイレクトします。Amazon Cognito は SAML アサーションを処理し、レスポンスのクレームが期待を満たしている場合、アプリケーションクライアントのコールバック URL にリダイレクトします。ユーザーがこの方法で認証を完了すれば、ユーザーが IdP とアプリケーションのためにのみウェブページを操作したことになります。

ドメイン形式の IdP 識別子を使用すると、マネージドログインは、サインイン時に E メールアドレスをリクエストし、E メールドメインが IdP 識別子と一致すると、ユーザーを IdP のサインインページにリダイレクトします。例えば、異なる 2 つの会社に所属する従業員によるサインインが必要となるアプリケーションを構築するとします。最初の会社、AnyCompany A は、`exampleA.com` および `exampleA.co.uk` を所有しています。2 番目の会社、AnyCompany B は、`exampleB.com` を所有しています。この例では、以下のように、1 社ごとに 2 つの IdP を設定します。
+ IdP A では、識別子 `exampleA.com` および `exampleA.co.uk` を定義します。
+ IdP B では、識別子 `exampleB.com` を定義します。

アプリケーションでは、アプリケーションクライアントのマネージドログインを呼び出し、各ユーザーに E メールアドレスの入力を求めます。Amazon Cognito は、E メールアドレスからドメインを取得し、ドメインを IdP とドメイン識別子に関連付け、`idp_identifier` リクエストパラメータを含む [認可エンドポイント](authorization-endpoint.md) へのリクエストを使用して、ユーザーを正しい IdP にリダイレクトします。例えば、ユーザーが `bob@exampleA.co.uk` を入力した場合、ユーザーが操作する次のページは、`https://auth.exampleA.co.uk/sso/saml` の IdP サインインページになります。

また、同じロジックを個別に実装することもできます。アプリケーションでは、ユーザー入力を収集したうえで独自のロジックに従って正しい IdP に関連付けるカスタムフォームを構築できます。アプリケーションテナントごとにカスタムポータルを生成すると、リクエストパラメータ内のテナントの識別子を使用して、各アプリケーションテナントを承認エンドポイントにリンクできます。

E メールアドレスを収集して、マネージドログインのドメインを解析するには、アプリケーションクライアントに割り当てた SAML IdP ごとに 1 つ以上の識別子を割り当てます。デフォルトでは、マネージドログインのサインイン画面に、アプリケーションクライアントに割り当てた IdP ごとにボタンが表示されます。ただし、識別子を正常に割り当てると、クラシックのホストされた UI のサインインページは、次の画像のようになります。

![Amazon Cognito のマネージドログインのサインインページに表示される、ローカルユーザーのサインインと、フェデレーションユーザーに E メールアドレスの入力を求めるプロンプト。](http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/images/cup-saml-identifiers.png)


**注記**  
クラシックのホストされた UI では、IdP に識別子を割り当てると、アプリケーションクライアントのサインインページで自動的にメールアドレスの入力を求められます。マネージドログインのエクスペリエンスでは、この動作をブランディングエディタで有効にする必要があります。**[認証動作]** の設定カテゴリで、見出しの **[プロバイダーの表示]** の下にある **[ドメイン検索入力]** を選択します。

マネージドログインのドメイン解析では、ドメインを IdP 識別子として使用する必要があります。アプリケーションクライアントの SAML IdP ごとに任意のタイプの識別子を割り当てると、そのアプリケーションのマネージドログインには、IdP の選択ボタンが表示されなくなります。E メール解析やカスタムロジックを使用してリダイレクトを生成する場合は、SAML の IdP 識別子を追加します。サイレントリダイレクトを生成するとともに、マネージドログインに IdP のリストを表示する場合は、識別子を割り当てず、認可リクエストで `identity_provider` リクエストパラメータを使用します。
+ アプリケーションクライアントに SAML IdP を 1 つだけ割り当てると、マネージドログインのサインインページには、その IdP でサインインするためのボタンが表示されます。
+ アプリケーションクライアントでアクティブ化する SAML IdP ごとに識別子を割り当てると、マネージドログインサインインページには、E メールアドレスの入力をユーザーに求めるプロンプトが表示されます。
+ 複数の IdP があり、すべてには識別子を割り当てない場合、マネージドログインのサインインページには、割り当てた IdP ごとにサインインするためのボタンが表示されます。
+ IdP に識別子を割り当て、マネージドログインページに特定の IdP ボタンを表示する場合は、新しい IdP を識別子なしでアプリケーションクライアントに追加するか、新しいアプリケーションクライアントを作成します。既存の IdP を削除し、識別子を用いずにそれを再度追加することもできます。新しい IdP を作成すると、SAML ユーザーが新しいユーザープロファイルを作成します。このようにアクティブなユーザーが重複していると、IdP 設定を変更した月に請求に影響する可能性があります。

IdP セットアップの詳細については、「[ユーザープールの ID プロバイダーの設定](cognito-user-pools-identity-provider.md)」を参照してください。