Amazon Cognito ユーザープールでの SAML セッション開始
Amazon Cognito は、サービスプロバイダーによって開始される (SP 開始) シングルサインオン (SSO) をサポートしています。SAML V2.0 技術概要
一部のエンタープライズユースケースでは、内部アプリケーションへのアクセスは Enterprise IdP がホストするダッシュボードのブックマークから始まります。ユーザーがブックマークを選択すると、IdP は SAML 応答を生成して SP に送信し、アプリケーションでユーザーを認証します。
Amazon Cognito は IdP で開始される SSO をサポートしていません。Amazon Cognito は SAML リクエストで認証を開始しない限り、受信した SAML レスポンスを要請したことを検証できません。
エンタープライズダッシュボードで Amazon Cognito アプリケーションをブックマークする
SAML または OIDC IdP ダッシュボードにブックマークを作成して、AmazonCognito ユーザープールで認証するウェブアプリケーションへの SSO アクセスを提供できます。Amazon Cognito には、ユーザーがホストされた UI でサインインする必要のない方法でリンクできます。これを行うには、次のテンプレートから AmazonCognito ユーザープールの 認可エンドポイント へのブックマークリンクを作成します。
https://
your_Amazon_Cognito_userpool_domain
/authorize?response_type=code
&identity_provider=your-SAML-IdP-name
&client_id=your-client-id
&redirect_uri=https://your_application_redirect_url
認証エンドポイントへのリクエストで、identity_provider
パラメータの代わりに idp_identifier
パラメータを使用することもできます。IdP 識別子は、ユーザープールに ID プロバイダーを作成するときに設定できる代替名です。「SAML ID プロバイダー名の選択」を参照してください。
リクエストで適切なパラメータを使用すると、/authorize
では、Amazon Cognito は SP が開始したサインインフローをサイレントに開始し、IdP でサインインするようにユーザーをリダイレクトします。
次の図表は、IDP 開始 SSO をエミュレートする認証フローを示しています。ユーザーは、会社ポータルのリンクから Amazon Cognito で認証できます。

プロバイダーからメタデータドキュメントをアップロードまたはリンクして、ユーザープールに SAML IdP を追加します。サインインに SAML IdP を使用し、承認されたコールバック URL としてアプリの URL を持つアプリクライアントを作成します。アプリクライアントの詳細については、「ユーザープールのアプリケーションクライアントの設定」を参照してください。
このソリューションを使用してアプリを認証する前に、ホストされた UI から SP が開始したアプリケーションへのサインインをテストします。Amazon Cognito で SAML IdP を設定する方法の詳細については、「サードパーティー SAML ID プロバイダーと Amazon Cognito ユーザープールとの統合」を参照してください。
これらの要件を満たしたら、identity_provider
または idp_identifier
パラメータのいずれかを含む /authorize
エンドポイントへのブックマークを作成します。以下の図表は、そのプロセスを示したものです。
-
ユーザーは SSO IdP ダッシュボードにサインインします。ユーザーがアクセスを許可されているエンタープライズアプリケーションには、このダッシュボードが表示されます。
-
ユーザーが Amazon Cognito で認証するアプリケーションへのリンクを選択します。多くの SSO ポータルでは、カスタムアプリリンクを追加できます。SSO ポータルでパブリック URL へのリンクを作成するために使用できる機能はすべて機能します。
-
SSO ポータル内のカスタムアプリリンクは、ユーザーをユーザープール 認可エンドポイント に誘導します。リンクには、
response_type
、client_id
、redirect_uri
およびidentity_provider
のパラメータが含まれます。identity_provider
パラメータは、ユーザープールで IdP に付けた名前です。identity_provider
パラメータの代わりにidp_identifier
パラメータを使用することもできます。ユーザーは、idp_identifier
またはidentity_provider
パラメータのいずれかを含むリンクからホストされた UI にアクセスします。このユーザーはサインインページをバイパスし、IdP で認証するために直接ナビゲートします。SAML IdP の名前付けの詳細については、「SAML ID プロバイダー名の選択」を参照してください。URL の例
https://
your_Amazon_Cognito_userpool_domain
/authorize?response_type=code
&identity_provider=your-SAML-IdP-name
&client_id=your-client-id
&redirect_uri=https://your_application_redirect_url
-
Amazon Cognito は、SAML リクエストを使用してユーザーセッションを IdP にリダイレクトします。
-
ユーザーがダッシュボードにサインインしたときに、IdP からセッション Cookie を受信した可能性があります。IdP はこの cookie を使用してユーザーをそのまま検証し、SAML レスポンスで Amazon Cognito
idpresponse
エンドポイントにリダイレクトします。アクティブなセッションが存在しない場合、IdP は SAML レスポンスを投稿する前にユーザーを再認証します。 -
Amazon Cognito は SAML レスポンスを検証し、SAML アサーションに基づいてユーザープロファイルを作成または更新します。
-
Amazon Cognito は、認証コードを使用してユーザーを内部アプリケーションにリダイレクトします。内部アプリ URL をアプリクライアントの承認されたリダイレクト URL として設定しました。
-
アプリは認証コードを Amazon Cognito トークンと交換します。詳細については、「トークンエンドポイント」を参照してください。