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 つの方法は、パラメータに 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

ユーザーが IdP SAML でサインインすると、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。この例では、次のように、会社ごとに 1 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 プロバイダーの設定」を参照してください。