OpenID Connectでバックエンド間の通信でシングルサインアウトをするための仕様である OpenID Connect Back-Channel Logout 1.0 - draft 04 のざっくりまとめ
ログアウトの流れ
-
(OPはログインを実施したRPをCookie等で記録しておく。)
-
OPはLogout Token(ログアウト要求の情報を含むJWT)をログインしたRPに送信する。
- ログアウト対象はLogout Tokenの
sub
(サブジェクトID)もしくはsid
(セッションID)に指定する。(両方指定してもよい) - Logoutトークンはapplication/x-www-form-urlencoded形式で
logout_token
パラメータに指定し、POSTメソッドで送信する。
- ログアウト対象はLogout Tokenの
-
RPは受け取ったLogout Tokenを検証して、Logout Tokenで指定されたセッションを無効化する。
- ログアウトに成功した場合はステータスコード
200
、失敗した場合は400
を返却する。
- ログアウトに成功した場合はステータスコード
その他
- ログアウト時にはoffline_accessプロパティのないリフレッシュトークンも無効化すべきとされている。
- Back-Channel LogoutはOpenID Connect Session Management 1.0のRP-Initiated Logout と組み合わせることもできる。(ユーザーがRPでログアウト実施 → OPが他のRPにBack-Channelでログアウト依頼 という流れ)