シングルログアウト (SLO) とは、アプリケーションによって開始されるグローバルログアウトのことです。Identity as a Service (IDaaS) からシングルサインオン (SSO) を実装してアプリケーションにログインした後、ログアウトする場合、アプリケーションでグローバルログアウトを開始して、アプリケーションセッションとプライマリ IDaaS ログインセッションの両方を終了できます。IDaaS は、OpenID Connect (OIDC) プロトコルに基づいて SLO を実装します。現在、SLO を使用してログアウトできるのは、自社開発アプリケーションと OIDC アプリケーションのみです。
SLO は、フェデレーション認証用のセッション管理システムです。プライマリセッションが存在するかどうかに関係なく、ログインごとに認証が必要なアプリケーションの場合は、[承認エンドポイント] の prompt パラメーターを構成して、ログインごとに認証を完了するように求めることができます。
SLO エンドポイントの呼び出し
ログアウトをリクエストする場合は、アプリケーションセッションが閉じられた後、IDaaS によって提供される [エンドセッションエンドポイント] へのリダイレクトリクエストを開始する必要があります。
管理者は、次の手順を実行することでエンドセッションエンドポイントを取得できます。アプリケーション名をクリックして [アプリケーションの詳細] ページに移動し、[サインイン] タブをクリックし、次に [SSO] サブタブをクリックし、ページの下部にある [アプリケーション設定] セクションでエンドセッションエンドポイントを見つけます。

このエンドポイントにリダイレクトすると、SLO がトリガーされます。この場合、IDaaS は SLO リクエストが有効かどうかを判断できないため、ログオフ操作を確認する必要があります。
この手動ログアウトプロセスはスキップできます。以下の手順を参照してください。
ログイン済みの IDaaS セッションが存在する場合、IDaaS はログアウト操作について確認を求め、次の図のようにログアウトの確認を求めます。

前の手順でログアウトを確認するか、ログイン済みの IDaaS セッションが存在しない場合は、次の図のように [ログアウトしました] メッセージが表示されます。

ログアウト時の自動リダイレクト
SLO の完了後に「ログアウトしました」メッセージが表示される代わりに、アプリケーションページにリダイレクトされるようにするには、[ログアウトリダイレクト URI] フィールド (post_logout_redirect_uris) を構成します。
管理者は、[アプリケーション] をクリックし、アプリケーション リストでこのアプリケーションを見つけ、アプリケーションに対応する [アクション] 列の [管理] をクリックします。表示されるページで、[サインイン] タブをクリックし、次に [SSO] サブタブをクリックします。[詳細設定の表示] をクリックし、[ログアウト リダイレクト URI] フィールドを見つけ、アプリケーションにリダイレクトするための完全な URI を入力します。
最大 5 つの [ログアウトリダイレクト URI] をホワイトリストとして構成できます。リダイレクトを有効にするには、SLO エンドポイントに送信されるログアウトリクエストに含まれる post_logout_redirect_uris パラメーターの値がこのホワイトリストに含まれている必要があります。

構成が保存された後、SLO エンドポイントに送信されるリクエストに post_logout_redirect_uris パラメーターを含めて、ログアウト時にリダイレクトを実装できます。
自動ログアウト
手動で確認することなくログアウトしてアプリケーションページにリダイレクトするには、[ログアウトリダイレクト URI] フィールドを構成した後、SLO エンドポイントに送信されるリクエストに id_token_hint パラメーターを含めます。
次の表は、SLO エンドポイントでサポートされているパラメーターを示しています。
パラメーター | 必須 | 説明 |
id_token_hint | いいえ | このパラメーターは、自動ログアウトを実装するために必要です。ログアウトリクエストが有効かどうかを確認します。 セッション ID と同じで、SSO 中に IDaaS によって発行される 説明 IDaaS のセッション ID と異なる場合は、手動でログアウトを確認します。 この制限は、悪意のあるログアウトを防ぐための OIDC プロトコル仕様のセキュリティ設計です。 |
post_logout_redirect_uris | いいえ | このパラメーターは、ログアウト時に自動リダイレクトを実装する場合に必要です。 ログアウト時にアプリケーションにリダイレクトするための HTTPS URI を渡します。この URI は、IDaaS のアプリケーション管理ページのログアウトリダイレクト URI フィールドであらかじめ構成しておく必要があります。 |
state | いいえ | ランダムな文字列。自動リダイレクトが構成されていて、このパラメーターが IDaaS に渡されると、このパラメーターはリダイレクトパラメーターとしてアプリケーションに返されます。 このパラメーターは、セキュリティ検証に使用されます。 |
次の例は、SLO エンドポイントに送信されるリクエストを示しています。
GET https://example.aliyunidaas.com/login/app/<application_id>/oauth2/logout
?id_token_hint=${id_token}
&post_logout_redirect_uri=${post_logout_redirect_uri}
&state=${state} SLO フローチャート

IDaaS の SLO 機能には、次の制限があります。
IDaaS は、OIDC に基づいてのみ SLO を実装できます。
IDaaS は、サービスプロバイダー (SP) によって開始された SLO のみをサポートします。
IDaaS は、プライマリ IDaaS ログインセッションのアプリケーションのみをログアウトし、他のログイン済みアプリケーションはログアウトしません。つまり、グローバル SLO は実装されていません。