This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
Support back-channel logouts from OIDC providers #11326
Labels
T-Enhancement
New features, changes in functionality, improvements in performance, or user-facing enhancements.
Description:
Right now, if a user logs out from his identity provider, they does not get logged out from their session in Synapse.
OIDC has two mechanism to achieve that:
Since we can do server-to-server requests between the IdP and Synapse, we should probably implement back-channel logouts.
When a logout happens, Synapse would get a JWT sent to an endpoint (e.g.
/_synapse/client/oidc/backchannel-logout
) signed by the IdP (we already have the keys discovered because we verify ID tokens signatures) with either the user ID (sub
) or the session ID (sid
).Ideally, we would logout using the session ID, else we would not be able to distinguish what session to log out. It also involves saving that session ID when the login happens.
Things to do to make that happen:
backchannel_logout_supported
metadatasid
claim). We should probably attach the session ID to the device to avoid having to carry that whenever we refresh the token/_synapse/client/oidc/backchannel-logout
, Synapse should:iss
claim) to find out what provider sent the requestaud
(audience) must match theclient_id
used by Synapseiat
(issued at) must not be in the future, nor too far in the pastevents
must be{ "http://schemas.openid.net/event/backchannel-logout": {} }
jti
(JWT token ID) should be saved to prevent token replay. We might skip that for performance reasonssid
claimSee PSE-127
The text was updated successfully, but these errors were encountered: