ユーザーがアプリケーションからKeycloakにSingle Sign-Onしたあと、アプリケーションだけでなくKeycloakからもログアウトしたい場合。
公式ドキュメントによると、下記のURLにアクセスすればいいと書かれています。
http://サーバー名:ポート/auth/realms/レルム名/protocol/openid-connect/logout
しかしドキュメントには、GETなのかPOSTなのか、必要なパラメーターは何なのか、パラメーターはヘッダーで送るのかクエリパラメーターなのか何なのか、何も書かれていない・・・。
色々試した結果、分かりました。
メソッドはPOST、そしてリクエストパラメーターとして refresh_token
、 client_id
、 client_secret
を送信すればログアウトできます。
curlコマンドだとこんな感じです。
curl -v -X POST -H "Content-Type: x-www-form-urlencoded" -d "refresh_token=リフレッシュトークン" -d "client_id=クライアントID" -d "client_secret=クライアントシークレット" http://サーバー名:ポート/auth/realms/レルム名/protocol/openid-connect/logout