ユーザープールへの SAML ID プロバイダーの追加 - Amazon Cognito

ユーザープールへの SAML ID プロバイダーの追加

ウェブおよびモバイルアプリのユーザーに対して、Microsoft Active Directory フェデレーションサービス (ADFS)Shibboleth などの SAML ID プロバイダー (IdP) を通じてサインインすることを許可できます。SAML 2.0 標準をサポートする SAML ID プロバイダーを選択します。

組み込みの Hosted Web UI では、Amazon Cognito がすべての認証済みユーザーに関するトークンの処理と管理を提供するため、バックエンドシステムは 1 つのユーザープールトークンのセットを標準とすることができます。SAML IdP は、AWS Management Console、AWS CLI、または Amazon Cognito API コールを使用して作成および管理できます。コンソールの使用を開始するには、「AWS Management Consoleで SAML ベースの ID プロバイダーを介したサインインをユーザープールに追加する」を参照してください。


                ソーシャルサインインの認証の概要
注記

サードパーティー (フェデレーション) 経由のサインインは、Amazon Cognito のユーザープールで使用できます。この機能は、Amazon Cognito ID プール (フェデレーティッド ID) 経由のフェデレーションとは無関係です。

SAML ID プロバイダーを更新し、これをサポートするようにユーザープールを設定する必要があります。ユーザープールを SAML 2.0 ID プロバイダーの証明書利用者またはアプリケーションとして追加する方法については、SAML ID プロバイダーのドキュメントを参照してください。

注記

Cognito は、80 バイトを超える relayState 値をサポートします。SAML 仕様では、relayState の値は「長さが 80 バイトを超えてはならない」と規定されていますが、現在の業界の慣行はこの動作から外れていることがよくあります。その結果、80 バイトを超える relayState を拒否すると、多くの標準的な SAML プロバイダーの統合は壊れます。

また、SAML ID プロバイダーにアサーションコンシューマーエンドポイントを提供する必要があります。SAML ID プロバイダーでこのエンドポイントを SAML 2.0 POST バインド用に設定します。

https://<yourDomainPrefix>.auth.<region>.amazoncognito.com/saml2/idpresponse

ドメインプレフィックスとユーザープールのリージョン値は、Amazon Cognito コンソールの [Domain name] (ドメイン名) タブにあります。

SAML ID プロバイダーによっては、SP urn / Audience URI / SP エンティティ ID を次の形式で指定する必要もあります。

urn:amazon:cognito:sp:<yourUserPoolID>

ユーザープール ID は、Amazon Cognito コンソールの [General settings] (全般設定) タブにあります。

また、SAML ID プロバイダーを設定して、ユーザプールに必要なすべての属性の属性値を提供する必要もあります。通常、email はユーザープールの必須属性です。その場合、SAML ID プロバイダーは、SAML アサーションの email 値 (クレーム) を指定する必要があります。

Amazon Cognito ユーザープールはバインディング後のエンドポイントで SAML 2.0 フェデレーションをサポートします。これにより、ユーザープールがユーザーエージェント経由で ID プロバイダーから直接 SAML レスポンスを受信するため、アプリで SAML アサーションレスポンスを受信して解析する必要がなくなります。ユーザープールはアプリケーションのためのサービスプロバイダー (SP) として機能します。Amazon Cognito は、SAML V2.0 Technical Overview のセクション 5.1.2 で説明されている、SP によって開始されるシングルサインオン (SSO) をサポートしています。