ユーザープールへの SAML ID プロバイダーの追加
ウェブおよびモバイルアプリケーションのユーザーに対して、Microsoft Active Directory フェデレーションサービス (ADFS)
組み込みの Hosted Web UI では、Amazon Cognito がすべての認証済みユーザーに関するトークンの処理と管理を提供します。このように、バックエンドシステムは 1 セットのユーザープールトークンで標準化できます。AWS CLI または Amazon Cognito API コールで AWS Management Console 内の SAML IdP を作成および管理できます。コンソールの使用を開始するには、「AWS Management Consoleで SAML ベースの ID プロバイダーを介したサインインをユーザープールに追加する」を参照してください。

サードパーティー (フェデレーション) 経由のサインインは、Amazon Cognito のユーザープールで使用できます。この機能は、Amazon Cognito ID プール (フェデレーティッド ID) 経由のフェデレーションとは無関係です。
SAML IdP を更新し、これをサポートするようにユーザープールを設定する必要があります。ユーザープールを SAML 2.0 IdP の証明書利用者またはアプリケーションとして追加する方法については、SAML IdP のドキュメントを参照してください。
Amazon Cognito と SAML IdP は、セッション情報を relayState
パラメータで管理します。
relayState
に関する留意事項
-
Amazon Cognito は、80 バイトを超える
relayState
値をサポートします。SAML 仕様では、relayState
の値は「長さが 80 バイトを超えてはならない」と規定されていますが、現在の業界の慣行はこの動作から外れていることがよくあります。その結果、80 バイトを超えるrelayState
値を拒否すると、多くの標準的な SAML プロバイダーの統合は壊れます。 -
RelayState トークンは、Amazon Cognito が管理する状態情報への不透明な参照です。Amazon Cognito は
relayState
パラメータの内容を保証しません。その内容を解析してアプリケーションでその結果に依存することは避けてください。詳細については、「SAML 2.0 の仕様」を参照してください。
また、SAML ID プロバイダーにアサーションコンシューマーエンドポイントを提供する必要があります。SAML ID プロバイダーの SAML 2.0 POST バインド用に、ユーザープールドメインで次のエンドポイントを設定します。ユーザープールドメインの詳細については、「ユーザープールのドメインを設定する」を参照してください。
https://
Your user pool domain
/saml2/idpresponse With an Amazon Cognito domain: https://<yourDomainPrefix>
.auth.<region>
.amazoncognito.com/saml2/idpresponse With a custom domain: https://Your custom domain
/saml2/idpresponse
ドメインプレフィックスとユーザープールのリージョン値は、Amazon Cognito コンソール
Amazon Cognito の idpresponse
エンドポイントは、暗号化された SAML アサーションを受け入れません。
SAML IdPs によっては、SP urn
/ Audience URI / SP エンティティ ID を次の形式で指定する必要もあります。
urn:amazon:cognito:sp:
<yourUserPoolID>
ユーザープール ID は、Amazon Cognito コンソール
また、SAML IdP を設定して、ユーザープールに必要なすべての属性の属性値を提供する必要もあります。例えば、email
はユーザープールの必須属性です。したがって、SAML IdP は、SAML アサーションの email
値 (クレーム) を指定する必要があります。
Amazon Cognito ユーザープールはバインディング後のエンドポイントで SAML 2.0 フェデレーションをサポートします。これにより、ユーザープールがユーザーエージェント経由で IdP から直接 SAML レスポンスを受信するため、アプリケーションで SAML アサーションレスポンスを受信して解析する必要がなくなります。ユーザープールはアプリケーションのためのサービスプロバイダー (SP) として機能します。Amazon Cognito は、SAML V2.0 Technical Overview
Amazon Cognito SAML リクエスト
認可エンドポイント がユーザーを IdP サインインページにリダイレクトすると、Amazon Cognito は HTTP
GET
リクエストの URL パラメータに SAML リクエストを含みます。SAML リクエストには、ユーザープールと saml2/idpresponse
エンドポイントに関する情報が含まれます。Amazon Cognito は SAML リクエストに署名しません。
Amazon Cognito は、ユーザーが IdP のログアウトエンドポイントに渡すログアウトリクエストに署名します。これらのログアウトリクエストで信頼を確立するには、Amazon Cognito コンソールの [Sign-in experience] (サインインエクスペリエンス) タブでダウンロードしたユーザープールの SAML 2.0 署名証明書のコピーを IdP に提供できます。
トピック