SAML ID プロバイダーの名前と識別子 - Amazon Cognito

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

SAML ID プロバイダーの名前と識別子

SAML ID プロバイダー (IdPs) に名前を付け、IdP 識別子を割り当てると、そのプロバイダーへの SP 開始のサインインリクエストとサインアウトリクエストの流れを自動化できます。プロバイダー名の文字列制約の詳細については、「」の ProviderNameプロパティを参照してくださいCreateIdentityProvider

IdP 識別子とホストされた UI を使用した Amazon Cognito SP 開始SAMLサインインの認証フロー図。ユーザーはホストされた UI に E メールアドレスを提供し、Amazon Cognito は自動的にプロバイダーにリダイレクトします。

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

E メールドメイン識別子を使用するか使用しないかにかかわらず、マルチテナントアプリの識別子を使用してユーザーを正しい IdP にリダイレクトできます。ホストされた UI を完全にバイパスする場合は、ユーザーに提示するリンクをカスタマイズして、 を介して IdP 認可エンドポイントに直接リダイレクトできます。識別子を使用してユーザーにサインインし、IdP にリダイレクトするには、最初の認証リクエストのリクエストパラメータidp_identifier=myidp.example.comに 形式の識別子を含めます。

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

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

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

ドメイン形式の IdP 識別子を使用すると、Amazon Cognito がホストする UI はサインイン時に E メールアドレスをリクエストし、E メールドメインが IdP 識別子と一致すると、 はユーザーを IdP のサインインページにリダイレクトします。例えば、2 つの異なる会社の従業員によるサインインを必要とするアプリケーションを構築します。最初の会社 AnyCompany A は exampleA.comと を所有していますexampleA.co.uk。2 番目の会社である AnyCompany B は を所有していますexampleB.com。この例では、次のように IdPs、会社ごとに 2 つの をセットアップしています。

  • IdP A では、識別子 exampleA.com および exampleA.co.uk を定義します。

  • IdP B では、識別子 exampleB.com を定義します。

アプリで、アプリクライアントのホストされた UI を呼び出して、各ユーザーに E メールアドレスを入力するように促します。Amazon Cognito は、E メールアドレスからドメインを取得し、ドメインを IdP とドメイン識別子に関連付け、idp_identifierリクエストパラメータ認可エンドポイントを含む へのリクエストを使用して、ユーザーを正しい IdP にリダイレクトします。例えば、ユーザーが を入力した場合bob@exampleA.co.uk、ユーザーが操作する次のページは の IdP サインインページですhttps://auth.exampleA.co.uk/sso/saml

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

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

Amazon Cognito でホストされた UI のサインインページ。ローカルユーザーのサインインと、フェデレーティッドユーザーによる E メールアドレスの入力を求めるプロンプトが表示されます。

ホストされた UI のドメイン解析では、ドメインを IdP 識別子として使用する必要があります。SAML IdPs アプリケーションクライアントの各 に任意のタイプの識別子を割り当てると、そのアプリケーションのホストされた UI に IdP の選択ボタンが表示されなくなります。E メール解析またはカスタムロジックを使用してリダイレクトを生成するSAML場合は、 の IdP 識別子を追加します。サイレントリダイレクトを生成し、ホストされた UI に のリストを表示させたい場合は IdPs、識別子を割り当てず、認証リクエストにidentity_providerリクエストパラメータを使用します。

  • アプリケーションクライアントに IdP SAML を 1 つだけ割り当てると、ホストされた UI サインインページに、その IdP でサインインするボタンが表示されます。

  • アプリケーションクライアントでアクティブ化するすべての IdP SAML に識別子を割り当てると、ホストされた UI サインインページに E メールアドレスのユーザー入力プロンプトが表示されます。

  • 複数の があり IdPs 、それらすべてに識別子を割り当てない場合、ホストされた UI サインインページには、割り当てられた各 IdP でサインインするためのボタンが表示されます。

  • に識別子を割り当て IdPs 、ホストされた UI に IdP ボタンの選択を表示する場合は、識別子のない新しい IdP をアプリケーションクライアントに追加するか、新しいアプリケーションクライアントを作成します。既存の IdP を削除し、識別子なしで再度追加することもできます。新しい IdP を作成すると、SAMLユーザーは新しいユーザープロファイルを作成します。このアクティブなユーザーの重複は、IdP 設定を変更した月に請求に影響する可能性があります。

IdP セットアップの詳細については、「ユーザープールの ID プロバイダーの設定」を参照してください。