sid
) inclus dans les jetons d’ID et les jetons de déconnexion pour coordonner la fin de la session via la communication par canal d’appui. Des identifiants de session différents représentent des séances individuelles d’un agent utilisateur ou d’un appareil dans votre locataire. Les jetons de déconnexion déterminent l’utilisateur final et la session à déconnecter.
Communications par canal d’appui
Pour utiliser la déconnexion par canal d’appui, une application doit exposer un URI de déconnexion par canal d’appui, accessible depuis le serveur du locataire, où l’application s’attend à recevoir les requêtes avec le jeton de déconnexion. Lorsqu’une application reçoit cette requête, elle est obligée d’effacer l’état de la session locale correspondant aux demandes contenues dans le jeton.Pour que la déconnexion de communication par canal d’appui fonctionne, l’application doit recevoir des communications back-channel.
Jetons dans les communications de déconnexion du canal d’appui OIDC
Les applications ne peuvent pas s’appuyer sur les témoins de session pour déterminer la session à clôturer lorsque les communications sont effectuées via le canal d’appui. Le service dépend plutôt d’un identifiant de session partagé (sid
) sur les jetons d’ID et de déconnexion.
Lorsque les utilisateurs finaux s’authentifient avec succès auprès d’Auth0 lors de la connexion, le serveur d’autorisation émet des jetons d’accès et d’ID. Des jetons de déconnexion sont générés lorsqu’une session est détruite, par exemple par une action de déconnexion ou par la révocation d’une session. Les jetons d’ID et de déconnexion contiennent les demandes dont votre application a besoin pour faciliter le flux de production de déconnexion du canal d’appui. Pour en savoir plus sur les demandes, consultez Demandes de jetons Web JSON.

- Connexion – Lors de l’authentification de l’utilisateur, le locataire Auth0 ajoute le
sid
au jeton d’ID. - Connexion – L’application conserve l’identifiant de session reçu dans son propre magasin de sessions et l’associe à la session propre à l’application.
- Déconnexion – L’IdP appelle l’URL de rappel de déconnexion préenregistrée et envoie le jeton de déconnexion à ce point de terminaison. Le jeton contient le
user_id
(sub
) et lesid
ainsi que d’autres paramètres. - Déconnexion – Le système dorsal de l’application doit valider le jeton de déconnexion conformément à la spécification OIDC et extraire le
sid
. Le programme dorsal peut ensuite utiliser ce jeton pour trouver la session associée à l’identifiant et y mettre fin si nécessaire.
La réponse attendue est
HTTP 200
pour une déconnexion réussie. Si vous recevez HTTP 400
, une requête incorrecte ou incomprise, vous pouvez alors appliquer nos conseils pour corriger le problème. Pour en savoir plus, consultez Configuration de déconnexion du canal d’appui.Fonctionnement
L’exemple de cas d’utilisation montre comment la déconnexion par canal d’appui fonctionne avec plusieurs applications :
- Lors de la configuration de l’application, l’application A enregistre un URI de déconnexion du canal d’appui auprès d’Auth0.
-
Lors de la configuration de l’application, l’application B enregistre un URI de déconnexion du canal d’appui auprès d’Auth0.
Les URL de déconnexion du canal d’appui OIDC doivent :
- Être accessibles à partir de l’IdP
- Utiliser des points de terminaison avec chiffrement TLS
- Valider les jetons de déconnexion
- Lors de la connexion de l’utilisateur final, un utilisateur s’authentifie auprès d’Auth0 pour accéder à l’application A.
-
Auth0 envoie un jeton d’ID avec
sid
à l’application A. Pour en savoir plus, consultez Structure du jeton d’ID. - L’utilisateur s’authentifie auprès d’Auth0 pour accéder à l’application B.
-
Auth0 envoie un jeton d’ID avec le même
sid
à l’application B. Votre application doit stocker les informations de session. - Pendant la déconnexion, l’application A ou d’autres entités initient la déconnexion sur le canal frontal.
- Auth0 met fin à la couche de session Auth0 au moyen d’un témoin de session.
- Auth0 appelle l’URI de déconnexion du canal d’appui de l’application A et envoie le jeton de déconnexion.
- L’application A valide le jeton de déconnexion et met fin à la session.
- Auth0 appelle l’URI de déconnexion du canal d’appui de l’application B et envoie le jeton de déconnexion.
- L’application B valide le jeton de déconnexion et met fin à la session.
Exemple de jeton
Votre application doit être en mesure d’analyser et de valider les pour les utiliser comme jetons de déconnexion avec Auth0. Pour en savoir plus, consultez Valider les jetons Web JSON. Une fois que votre application valide et décode votre jeton, le contenu est similaire à l’exemple ci-dessous :Trousse SDK Auth0
Un exemple complet et le code de production sont déjà inclus dans la section Exemple de déconnexion du canal d’appui de notre trousse SDK express-openid-connect.Exemples d’implémentation
Stockage de la session
L’exemple de stockage de session est construit en Node (Express) et basé sur l’exemple d’application Web OpenID Connect Express. Dans l’onglet des sessions de votre application, exposez la route que vous avez configurée pour recevoir le jeton de déconnexion. Validez le jeton et mettez fin à la session de l’utilisateur.Cet exemple utilise une note de session stockée pour les besoins de la démonstration.
Magasin de jetons de déconnexion
Une approche courante pour le stockage des jetons consiste à définir un magasin de déconnexion comme solution de rechange au modèle de magasin de session. Vos applications conservent une collection de jetons de déconnexion au niveau de la persistance. Chaque fois que l’application a besoin de vérifier son statut d’authentification, elle interroge le magasin de jetons de déconnexion pour savoir si sa session est toujours active. Le magasin de déconnexion efface régulièrement les informations obsolètes pour ne conserver que les informations nécessaires.
Considérations relatives à la sécurité
Les jetons de déconnexion du canal d’appui sont délivrés sur l’Internet. Par conséquent, les points de terminaison de rappel qui les reçoivent doivent suivre les pratiques exemplaires pour assurer un fonctionnement fiable et sécuritaire. Voici une liste de suggestions non exhaustives. Prendre en compte les situations particulières de déploiement et d’exploitation pour s’y adapter est crucial. Dans la liste ci-dessous, toutes les applications qui gèrent les jetons de déconnexion du canal d’appui sont appelées « applications ».- Les applications doivent pouvoir stocker l’identifiant de session (demande
sid
) reçu lors de la connexion de l’utilisateur afin de le récupérer ultérieurement lors de la réception d’un jeton de déconnexion du canal d’appui. - Les applications doivent vérifier tout jeton reçu conformément aux pratiques exemplaires de validation des JWT.
- Les applications doivent accepter les jetons émis uniquement par des locataires de confiance. Un acteur malveillant peut tenter d’envoyer des jetons émis par d’autres locataires d’Auth0, ces tentatives doivent être rejetées.
- Les applications doivent accepter les jetons uniquement lorsqu’ils contiennent une valeur
sid
(identifiant de session) que l’application reconnaît. Les jetons contenant un identifiant de session non valide (qu’il soit expiré ou non reconnu) doivent être rejetés. - Les applications doivent exposer les points de terminaison de rappel uniquement via TLS. Les canaux de communication non cryptés ne sont pas autorisés.
- Il est recommandé que les applications acceptent uniquement les demandes provenant de la liste publiée des adresses IP sortantes.
- Il est recommandé aux applications de suivre les pratiques exemplaires générales en matière de surveillance, de journalisation et de limites anti-attaques. Toutefois, les détails de ces pratiques ne relèvent pas du champ d’application du présent document.
- Il est recommandé que les applications nettoient régulièrement les sessions périmées ou expirées.
- Toute modification de l’adresse du point de terminaison doit être synchronisée avec la configuration du locataire afin de garantir que les jetons de déconnexion sont toujours délivrés à l’URL de rappel de déconnexion du canal d’appui appropriée.
En savoir plus
- Configuration de déconnexion du canal d’appui OIDC
- Vérifier les problèmes de connexion et de déconnexion
- Déconnecter des utilisateurs des fournisseurs d’identité SAML
- Déconnexion des utilisateurs d’Auth0 avec le point de terminaison OIDC
- Déconnecter l’utilisateur de l’application
- Déconnecter des utilisateurs des fournisseurs d’identité