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