アプリ統合でシングルログアウトを構成する
シングルログアウト(SLO)とは、エンドユーザーが1回の操作でOktaセッションと構成済みアプリの両方からサインアウトできるようにするフェデレーション認証の機能です。
Oktaでは、サービスプロバイダー(SP)がこのサインアウトプロセスを開始した場合にのみ、シングルサインアウトがサポートされます。SPがOktaにSLOリクエストを送信すると、Oktaセッションが終了します。
- SWAアプリケーションはSLOをサポートしません。
- すべてのアプリの統合がSLOをサポートしているわけではありません。SPがダウンストリームアプリでSLOをサポートしている場合、アプリの構成ガイドにサポート対象の機能として記載されます。SLOに対応するようリクエストを出す場合は、直接SPにお問い合わせください。
SAML統合でSLOを有効化する
早期アクセスのフロントチャネルSLOを有効にした場合、この構成は異なります。「SAML統合でSLOを有効化する(フロントチャネルオプションを使用)」を参照してください。
SAMLアプリケーションでは、SPがSLOリクエストをPOSTリクエストとしてOktaに送信することができ、リクエストに署名されている必要があります。
SLOの構成には、SAMLアプリケーション統合ウィザードを利用できます。
- Admin Consoleで、 に移動します。
- SLOを追加するSAMLアプリケーションをクリックします。
- [General(一般)]設定タブの[SAML Settings(SAML設定)]パネルで、[Edit(編集)]をクリックします。
- SAML構成ウィザードで、[Next(次へ)]をクリックします。
- [Configure SAML(SAMLを構成)]ページで、[Show Advanced Settings(詳細設定を表示)]をクリックします。
- [Allow application to initiate Single Logout(アプリケーションによるシングルログアウトの開始を許可)]を選択します。
- [Single Logout URL(シングルログアウトURL)]:SLOが返すURLです。これは(POST操作で)Oktaからのサインアウト応答の送信先となるサービスプロバイダーのURLです。SP側でSLO用のURLを指定していない場合は、SPのメインURLを使用できます。
- [SP Issuer(SP発行者)]:アプリケーションの識別子です。ACS URLかSPエンティティIDで表されます。SPアプリケーションからSLOリクエストで送信されるメタデータの中にもこの値が含まれます。
- [Signature Certificate(署名証明書)]:OktaではSLOリクエストにデジタル署名が必要です。署名証明書のコピーまたはSPがSLOリクエストへの署名に使用しているCAのどちらかをアップロードする必要があります。
- [Next(次へ)]をクリックします。
- [Finish(終了)]をクリックします。
最後に、SPアプリケーションで必要になるSLOの情報を取得する必要があります。
- [Sign On(サインオン)]設定タブの[View SAML setup instructions(SAMLの設定手順を表示)]をクリックします。
- ここで表示されるページから、[Identity Provider Single Logout URL(IDプロバイダーのシングルログアウトURL)]を確認できます。このURLをコピーし、SPアプリケーションに戻って構成設定に追加します。
- SLOのフローをテストするには、Okta統合を利用してSPアプリケーションにサインインし、SPアプリケーション内で該当のサインアウト方法を実行します。これにより、ブラウザー上でSPアプリケーションとOktaの両方からサインアウトが行われます。
SAML統合でSLOを有効化する(フロントチャネルオプションを使用))
早期アクセスリリース。「セルフサービス機能を有効にする」を参照してください。
SAML SLO構成には2つのオプションがあります。
-
[SLO initiation(SLO開始)]では、SPアプリケーションは、OktaとSLOをサポートするその他のオープンアプリからログアウトできます
-
[SLO participation(SLO参加)]では、別のオープンアプリケーションがフロントチャネルHTTPリクエストを使ってSLOを開始したときに、SPアプリケーションを自動的にログアウトさせることができます
フロントチャネルSLOトランザクションに関与するアプリが多すぎると、NGINXなどのサーバーソフトウェアが設定したレスポンスヘッダー制限を超過する可能性があります。このような場合は、可能であればデフォルトのサーバー制限を更新するか、フロントチャネルSLOが構成されているアプリケーションの数を減らす必要があるかもしれません。Oktaナレッジベースを参照してください。
詳細については、「シングルログアウトを構成する」を参照してください。
SAMLアプリケーション統合ウィザードでは、一方または両方のオプションを選択できます。
- Admin Consoleで、 に移動します。
- SLOを追加するSAMLアプリケーションをクリックします。
- [General(一般)]設定タブの[SAML Settings(SAML設定)]パネルで、[Edit(編集)]をクリックします。
- SAML構成ウィザードで、[Next(次へ)]をクリックします。
- [Signature Certificate(署名証明書)]が表示されないときは、[Browse files(ファイルを参照)]をクリックして証明書をアップロードします。
- [Logout(ログアウト)]セクションで、[SLO initiation(SLO開始)] 、[SLO participation(SLO参加)]、または両方のチェックボックスを選択します。
- [SLO initiation(SLO開始)]では、次の情報を入力します。
- [Response URL(応答URL)] — SLOが返すURL。これは(POST操作で)Oktaからのサインアウト応答の送信先となるサービスプロバイダーのURLです。SP側でSLO用のURLを指定していない場合は、SPのメインURLを使用できます。
- [SP Issuer(SP発行者)]:アプリケーションの識別子です。ACS URLかSPエンティティIDで表されます。SPアプリケーションからSLOリクエストで送信されるメタデータの中にもこの値が含まれます。
- [SLO participation(SLO参加)]では、次の情報を入力します。
- [Request URL(リクエストURL)] — Oktaがこのアプリのログアウトリクエストを送信する先。
- [Request binding(リクエストバインディング)] — Postまたはリダイレクト。
- [User session details(ユーザーセッションの詳細)] — 任意。セッション情報に基づいて、SLOを特定のユーザーに制限できます。
- [SLO initiation(SLO開始)]では、次の情報を入力します。
- [Next(次へ)]をクリックします。
- [Finish(終了)]をクリックします。
最後に、SPアプリが必要とするSLO IdPの詳細を取得する必要があります。[Sign On(サインオン)]設定タブの[View SAML setup instructions(SAMLの設定手順を表示)]をクリックします。
- [SLO initiation(SLO開始)]を構成した場合は、[Identity Provider Single Logout URL(IDプロバイダーシングルログアウトURL)]をコピーします。
- [SLO participation(SLO参加)]を構成した場合は、[Identity Provider Single Logout Callback URL(IDプロバイダーシングルログアウトコールバックURL)]をコピーします。
URLは、SAML 2.0セクションの[More details(詳細)]の下にある[Sign On(サインオン)]タブのアプリ構成で確認できます。
OIDC統合でSLOを有効にする
OpenID Connect(OIDC)統合の場合は、SLOリクエストをGETリクエストとしてOktaに送信するようにSPアプリケーションを構成する必要があります。この設定により、アプリケーションはOktaエンドポイントにリダイレクトされます。
GET https://{baseUrl}/logout?id_token_hint=${id_token}&post_logout_redirect_uri=${post_logout_redirect_uri}&state=${state}ここで
- baseURLはOkta orgのURLです。
- id_tokenはサインオン時にOktaによって発行されるOIDCトークンです。
- 任意。post_logout_redirect_uriはログアウトリダイレクトURIです。SLO操作後にOktaによってユーザーがリダイレクトされるURIを示します。このURIは、Okta統合の[General Settings(一般設定)]内にある、[Logout redirect URIs(ログアウトリダイレクトURI)]構成のリストに記載されている必要があります。
- 任意。stateはSLO URIへのリダイレクト時にパラメーターとして追加する任意の文字列です。
このリクエストが処理されると、id_tokenが無効になり、ユーザーはOktaからサインアウトします。
APIにGETリクエストを送信する方法の詳細については、「OpenID ConnectおよびOAuth 2.0 API」リファレンスを参照してください。
アプリケーション開発者向けの情報として、開発者ガイドの「ユーザーのサインアウト」の項目で言語固有の手順も提供しています。
最後に、ログアウト・リダイレクトURIをOkta統合に追加する必要があります。
- Admin Consoleで、 に移動します。
- SLOを追加するOIDCアプリケーションをクリックします。
- [General(一般)]設定タブで、[Edit(編集)]をクリックします。
- [Logout redirect URIs(ログアウトリダイレクトURI)]の横の[+Add URI(URIを追加)]をクリックし、「post_logout_redirect_uri」を入力します。
- 任意。[ログアウト]セクションで、[Allow the app to participate in single logout(アプリがシングルログアウトに参加できるようにする)]を選択します。
早期アクセスリリース。「セルフサービス機能を有効にする」を参照してください。
この機能は、ネイティブアプリではサポートされません。詳細については、「シングルログアウトを構成する」を参照してください。
フロントチャネルSLOトランザクションに関与するアプリが多すぎると、NGINXなどのサーバーソフトウェアが設定したレスポンスヘッダー制限を超過する可能性があります。このような場合は、可能であればデフォルトのサーバー制限を更新するか、フロントチャネルSLOが構成されているアプリケーションの数を減らす必要があるかもしれません。Oktaナレッジベースを参照してください。
次の情報を入力します。
- [Request URL(リクエストURL)] — Oktaがこのアプリのログアウトリクエストを送信する先。
- [User session details(ユーザーセッションの詳細)] — 任意。セッション情報に基づいて、SLOを特定のユーザーに制限できます。
- [Save(保存)]をクリックします。
- SLOのフローをテストするには、Okta統合を利用してSPアプリケーションにサインインし、SPアプリケーション内で該当のサインアウト方法を実行します。これで、ブラウザー上でSPアプリケーションとOktaの両方からサインアウトが行われます。