🗝️
OpenID Connect RP-Initiated Logout メモ
OIDC の SLO(シングルログアウト) について勉強メモ (RP-Initiated Logout)
OIDC の セッション関連の仕様
-
RP-Initiated Logout
- PR 起点のログアウト
- RP からエンドユーザーのユーザーエージェントを OP のログアウトエンドポイントにリダイレクトすることで、OP がエンドユーザーをログアウトするように要求する
-
Front-Channel Logout
- OP でログイン済みRPに通信してエンドユーザーをRPからログアウトさせる
-
Back-Channel Logout
- OPからログアウトしたことをログイン中のRPにバックエンド間通信で通知し、エンドユーザーをRPからログアウトさせる
RP-Initiated Logout
- RP は OP から RP-Initiated Logout 用に提供された URI に、ユーザーエージェントをアクセスさせる。ログアウト後の遷移先となる RP のURI (
post_logout_redirect_uri
)などのパラメータをクエリ指定できる- OP のログアウトエンドポイントにリダイレクトする前に、エンドユーザーをログアウトするかどうかは RP 次第
- OP は渡されたパラメータを検証する
- OPはユーザーに「ログアウトするかどうか」確認し、同意された場合にログアウト
- SSO 中の他の RP にログアウトを通知する方法は、以下がある
- OpenID Connect Session Management
- OpenID Connect Front-Channel Logout
- OpenID Connect Back-Channel Logout
- SSO 中の他の RP にログアウトを通知する方法は、以下がある
-
post_logout_redirect_uri
にRPからのリダイレクトで受け取ったstate
を付与してリダイレクト - RPは
state
を検証
-
id_token_hint
- Recommended
- OPによって以前にRPに発行されたIDトークン
- RPがOPによるログアウトを要求しているエンドユーザーのIDを示すために使用
-
post_logout_redirect_uri
- Optional
- ログアウト実行後、RPがエンドユーザーのユーザーエージェントのリダイレクトを要求するURL
- OPに事前登録
- このパラメーターが含まれている場合は、
id_token_hint
も必要
-
state
- Optional
-
post_logout_redirect_uri
で指定されたエンドポイントへのログアウトリクエストとコールバックの間で状態維持するために RP で使用される値 - ログアウトリクエストに含まれている場合、OPはユーザーエージェントをRPにリダイレクトするときに
state
を使用してこの値をRPに返す
-
ui_locales
- Optional
- UI用のエンドユーザーの優先言語
Ref.
- OpenID Connect RP-Initiated Logout 1.0
Discussion