Avant de commencer
Pour utiliser Back-Channel Logout, votre application doit respecter les exigences suivantes :
- Le point de terminaison URI d’OIDC Back-Channel Logout doit être accessible sur Internet afin que votre tenant Auth0 puisse y accéder.
- Les applications prêtes pour la production doivent utiliser TLS. Pour en savoir plus, consultez Versions TLS (SSL) et algorithmes de chiffrement.
- L’application doit pouvoir stocker l’identifiant de session (
sid) fourni et l’associer aux sessions utilisateur qu’elle crée. Nous recommandons aux applications de production d’utiliser un stockage de session persistant. - L’application doit pouvoir récupérer une session existante à l’aide du
sidpendant le processus de logout, sans utiliser de cookies côté client. Les cookies se trouvent dans le navigateur et sont inaccessibles au point de terminaison de rappel du logout.
Disponibilité
/.well-known/* pour déterminer si votre application répond aux exigences.
Restrictions liées à Back-Channel Logout
- Vous devez utiliser le protocole HTTPS. Le protocole HTTP non chiffré ou tout autre protocole n’est pas autorisé.
-
Vous ne devez pas utiliser de sous-domaines Auth0. Voici quelques sous-domaines Auth0 :
- auth0.com
- auth0app.com
- webtask.io
- webtask.run
- Nous ne recommandons pas d’utiliser des adresses IP sans nom de domaine. Pour utiliser Back-Channel Logout, les adresses IP doivent être publiques. Les adresses IP provenant de plages internes, réservées ou de bouclage ne sont pas autorisées.
Configurer Auth0
- Auth0 Dashboard
- Management API
Abonnement des applications
- Accédez à Auth0 Dashboard > Applications.
- Choisissez l’application que vous voulez enregistrer.
- Sélectionnez l’onglet Settings.
- Sous OpenID Connect Back-Channel Logout > Back-Channel Logout URI, ajoutez l’URI de déconnexion de l’application qui recevra les logout_tokens
-
Une fois terminé, sélectionnez Save Changes.

Désabonnement des applications
Lorsque vous désabonnez votre application, le service cesse de suivre les nouvelles connexions et d’envoyer des événements de déconnexion. Le service supprime les événements de déconnexion en attente une fois votre application désabonnée.Pour désabonner votre application, supprimez l’URL de déconnexion back-channel.- Accédez à Auth0 Dashboard > Applications.
- Choisissez l’application que vous voulez désabonner.
- Sélectionnez l’onglet Settings.
- Sous OpenID Connect Back-Channel Logout > Back-Channel Logout URI
- Supprimez l’URL back-channel.
-
Une fois terminé, sélectionnez Save Changes.

API Operation Event dans les journaux du tenant Auth0. Pour en savoir plus, consultez Logs.Configurez votre application
-
Implémentez l’authentification de l’utilisateur final selon votre type d’application.
- Les utilisateurs finaux doivent pouvoir se connecter à l’application, et une session doit être créée.
- Un ID token doit être émis par Auth0 et accessible dans le backend de l’application pour un traitement ultérieur.
-
Étendez le processus de connexion pour enregistrer les claims
sidet, facultativement,subaprès avoir validé l’ID token.- Ces claims doivent être enregistrés dans la session d’application en cours.
- Les fonctions de gestion de session doivent pouvoir récupérer une session précise à partir de la valeur
sid.
-
Configurez le point de terminaison de Back-Channel Logout :
- Le point de terminaison ne doit traiter que les requêtes
HTTP POST. - Extrayez le paramètre
logout_tokenet validez-le comme un JWT ordinaire conformément à la spécification. - Vérifiez que le token contient un claim d’événements avec une valeur de type objet JSON et un membre nommé
http://schemas.openid.net/event/backchannel-logout. - Vérifiez que le token contient les claims
sidet/ousub. - Vérifiez que le token ne contient PAS le claim
nonce. Cela est nécessaire pour prévenir les abus en distinguant le Logout Token de l’ID token. - Une fois le token validé, récupérez la session correspondant à la valeur
sidet/ousubreçue, puis terminez-la. Le processus exact de terminaison de la session d’application dépend des détails de la mise en œuvre. Par exemple, il peut être nécessaire de communiquer cet événement au front-end.
- Le point de terminaison ne doit traiter que les requêtes
Exemple de demande de Back-Channel Logout OIDC
cURL
Le token expire après 2 minutes (120 sec).
JSON
Réponses attendues
- HTTP 200: Confirme la déconnexion de l’utilisateur de l’application en question.
- HTTP 400: Indique une requête incorrecte. La requête n’est pas comprise ou le jeton n’a pas réussi la validation. Auth0 consigne le problème dans les journaux du tenant, mais ne tente pas d’autres requêtes pour cette session précise.
Résolution des problèmes
L’application n’a pas reçu les événements de déconnexion
- Assurez-vous que votre application dispose d’une URL de Back-Channel Logout enregistrée dans Auth0 Dashboard.
- Assurez-vous que l’URL de Back-Channel Logout peut être atteinte depuis le tenant Auth0.
-
Assurez-vous qu’une session valide est établie. L’utilisateur final doit se connecter à cette application au moyen d’Auth0.
Les applications reçoivent des événements de déconnexion uniquement si les utilisateurs finaux se connectent à cette application avec Auth0. Si l’utilisateur final se connecte à d’autres applications, aucun événement de déconnexion n’est déclenché.
- Vérifiez les journaux du tenant Auth0 pour y repérer des messages indiquant un échec de remise du message de déconnexion.
- Assurez-vous que la déconnexion est déclenchée par le point de terminaison de déconnexion standard. Les autres événements ne déclenchent pas les événements de déconnexion.
- Si possible, vérifiez s’il y a des requêtes bloquées dans les journaux du serveur Web et/ou du pare-feu de l’application.
Je ne trouve pas le journal du tenant d’OIDC Back-Channel Logout
sslo pour oidc_backchannel_logout_succeeded ou fslo pour oidc_backchannel_logout_failed.
L’application cliente ne peut pas vérifier le Logout Token reçu
- Vérifiez si le jeton est un JWT standard encodé en base64. Certains serveurs Web peuvent tronquer les paramètres longs. Pour en savoir plus, consultez Signing Algorithms.
- Si possible, capturez un jeton et vérifiez qu’il s’agit bien d’un JWT. Utilisez une source fiable, comme JWT.IO.
-
Assurez-vous que la fonction de vérification récupère dynamiquement la clé de signature du tenant au moyen de JSON Web Key Sets (JWKS).
Nous ne recommandons pas de coder en dur une clé statique. Si votre configuration exige qu’une clé statique soit codée en dur, assurez-vous qu’elle contient la clé publique la plus récente du tenant Auth0.