Amazon Cognito ユーザープールを使用するアプリケーションで SAML シングルサインアウトを構成したいと考えています。アプリケーションでも SAML ID プロバイダー (IdP) を認証に使用しています。
解決策
前提条件:
SAML IdP で SAML サインアウトを有効化する
次の手順を実行します。
- Amazon Cognito コンソール
- ナビゲーションペインで [ユーザープール] を選択し、目的のユーザープールを選択します。
- [ソーシャルプロバイダーと外部プロバイダー] を選択し、目的の SAML IdP を選択します。
- SAML IdP の構成において、[サインアウトフローを追加] と**[このプロバイダーへの SAML リクエストに署名する]** を選択します。次に、設定を保存します。
- [署名証明書を表示] を選択します。
- [.crt 形式でダウンロード] を選択します。
- [閉じる] を選択します。
外部 IdP でサインアウトを有効化する設定を行う
Cognito アプリケーションでシングルサインアウトを構成するには、使用する IdP のマニュアルを参照の上、SAML アプリケーションでシングルサインアウトを有効化してください。
アプリケーションの構成時に、次の手順を実行します。
- IdP の SAML アプリケーション構成における署名証明書として、Cognito ユーザープールから .crt ファイルをアップロードします。
- IdP の構成でシングルサインアウトを有効にします。
注: IdP によっては、シングルサインアウトをシングルログアウト (SLO) と表記する場合があります。
- IdP の構成で次の値を指定します。
[シングルサインアウト URL] に https://YourDomain.auth.Region.amazoncognito.com/saml2/logout を入力します。
[サービスプロバイダー (SP) 発行者] に urn:amazon:cognito:sp:YourUserPoolID を入力します。
注: YourDomain、Region、YourUserPoolID をそれぞれ目的の値に置き換えてください。IdP は、SAML LogoutResponse を HTTP POST リクエストとして送信する必要があります。その後、Cognito はユーザーを最初のリクエストに含まれるサインアウト URL にリダイレクトします。
シングルサインアウトをテストする
Cognito の /logout エンドポイント に GET リクエストを行います。リクエストには、client_id と logout_uri の各パラメータが必要です。
ログアウト URL の例:
https://YourDomain.auth.Region.amazoncognito.com/logout?client_id=YourAppClientID&logout_uri=YourAllowedSignOutURL
注: カスタムアプリケーションでは、ユーザーのブラウザにローカル保存されたトークンまたはセッション情報を削除する必要があります (例: localStorage、sessionStorage)。Cognito のログアウト URL は、マネージド UI を使用するアプリケーションの Cognito Cookie のみをクリアします。
関連情報
シングルサインアウトで SAML ユーザーをサインアウトする