sid) と ログアウトトークン を使用して、バックチャネル通信によるセッション終了を連携させます。異なるセッション ID は、テナント内のユーザーエージェントまたはデバイスごとの個別のセッションを表します。ログアウトトークン は、ログアウト対象のエンドユーザーとセッションを識別します。
バックチャネル通信
バックチャネルログアウトを機能させるには、アプリケーションがバックチャネル通信を受信できる必要があります。
OIDC バックチャネルログアウト通信におけるトークン
sid) を使用します。
エンドユーザーがログイン時に Auth0 で正常に認証されると、がアクセストークンとIDトークンを発行します。ログアウトトークンは、ログアウト操作やセッションの失効などでセッションが破棄されたときに生成されます。IDトークンとログアウトトークンの両方には、アプリケーションが Back-Channel Logout ワークフローを実行するために必要なクレームが含まれます。クレームの詳細については、JSON Web Token Claims を参照してください。

- ログイン - ユーザー認証中に、Auth0 テナントは IDトークンに
sidを追加します。 - ログイン - アプリケーションは受け取ったセッション識別子を独自のセッションストアに保存し、アプリケーション固有のセッションに関連付けます。
- ログアウト - IdP が事前登録されたログアウトコールバック URL を呼び出し、このエンドポイントにログアウトトークンを POST します。このトークンには、他のパラメーターとともに
user_id(sub) とsidが含まれます。 - ログアウト - アプリケーションのバックエンドは、OIDC 仕様に従ってログアウトトークンを検証し、
sidを抽出する必要があります。その後、バックエンドはこのトークンを使用して、その識別子に関連付けられたセッションを特定し、必要に応じて終了できます。
ログアウトが成功した場合、想定されるレスポンスは
HTTP 200 です。誤ったリクエストや不正な形式のリクエストを示す HTTP 400 を受け取った場合は、トラブルシューティングのヒントを利用できます。詳細については、Configure Back-Channel Logout を参照してください。仕組み

- アプリケーションの設定時に、Application A は Back-Channel Logout URI を Auth0 に登録します。
-
アプリケーションの設定時に、Application B は Back-Channel Logout URI を Auth0 に登録します。
OIDC Back-Channel Logout URL は、次の要件を満たす必要があります。
- IdP からアクセスできること
- TLS で暗号化されたエンドポイントを使用すること
- ログアウトトークンを検証する
- エンドユーザーのログイン時に、ユーザーは Application A にアクセスするために Auth0 で認証されます。
-
Auth0 は
sidを含む IDトークンを Application A に送信します。詳しくは、ID Token Structure を参照してください。 - ユーザーは Application B にアクセスするために Auth0 で認証されます。
-
Auth0 は同じ
sidを含む IDトークンを Application B に送信します。アプリケーションはセッション情報を保存する必要があります。 - ログアウト時に、Application A または他のエンティティがフロントチャネルでログアウトを開始します。
- Auth0 はセッションクッキーを介して Auth0 のセッションレイヤーを終了します。
- Auth0 は Application A の Back-Channel Logout URI を呼び出し、ログアウトトークン を POST します。
- Application A は ログアウトトークン を検証し、セッションを終了します。
- Auth0 は Application B の Back-Channel Logout URI を呼び出し、ログアウトトークン を POST します。
- Application B は ログアウトトークン を検証し、セッションを終了します。
サンプルトークン
JSON
Auth0 SDKs
実装例
セッションストレージ
この例では、デモ用にインメモリのセッションストアを使用しています。
routes/index.js
middlewares/validateLogoutToken.js
ログアウトトークンストア

セキュリティに関する考慮事項
- アプリは、後で Back-Channel ログアウトトークン を受信した際に参照できるよう、ユーザーのログイン時に受信したセッション ID (
sidクレーム) を保存できなければなりません。 - アプリは、受信したすべてのトークンを JWT validation best practices に従って検証しなければなりません。
- アプリは、信頼できるテナントによって発行されたトークンのみを受け入れなければなりません。悪意のある第三者が、他の Auth0 テナントによって発行されたトークンを送信しようとする可能性があるため、そのような試みは拒否しなければなりません。
- アプリは、アプリが認識できる
sid値 (セッション ID) を含むトークンのみを受け入れなければなりません。無効なセッション ID (期限切れまたは未認識) を含むトークンは拒否しなければなりません。 - アプリは、コールバックエンドポイントを TLS 経由でのみ公開しなければなりません。暗号化されていない通信チャネルは許可されません。
- アプリは、公開されている outbound IP addresses の一覧に含まれる送信元からのリクエストのみを受け入れることが推奨されます。
- アプリは、監視、ログ記録、レート制限に関する一般的なベストプラクティスに従うことが推奨されます。ただし、これらの詳細はこのドキュメントの対象外です。
- アプリは、古くなった、または期限切れのセッションを定期的にクリーンアップすることが推奨されます。
- エンドポイントアドレスに変更があった場合は、ログアウトトークン が常に正しい Back-Channel Logout Callback URL に配信されるよう、テナント設定と同期しなければなりません。