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

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

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


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

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

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 つの方法は、次の URL 形式で パラメータidentity_providerに IdP の名前を入力することです。

https://mydomain.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 識別子を使用すると、Amazon Cognito でホストされる UI はサインイン時に E メールアドレスをリクエストし、E メールドメインが IdP 識別子と一致すると、ユーザーを IdP のサインインページにリダイレクトします。例として、2 つの異なる企業の従業員によるサインインを必要とするアプリを構築します。最初の会社である AnyCompany A は、 exampleA.comと を所有していますexampleA.co.uk。2 番目の会社である AnyCompany B は を所有していますexampleB.com。この例では、次のように IdPs、会社ごとに 1 つずつ、合計 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 に関連付けるカスタムフォームを構築できます。アプリテナントごとにカスタムアプリポータルを生成できます。各アプリポータルは、リクエストパラメータにテナントの識別子を含む認証エンドポイントにリンクします。

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


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

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

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

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

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

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

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