- Flux de code d’autorisation
- Flux de code d’autorisation avec Proof Key for Code Exchange
- Flux d’autorisation d’appareil
- Flux de mot de passe du propriétaire de ressource
Maintenir les sessions utilisateurs dans les SPA
Jusqu’à très récemment, les SPA (applications à page unique) maintenaient la session utilisateur en utilisant un Flux Code d’autorisation avec PKCE conjointement à une authentification silencieuse. Les récents développements en technologie de navigateurs privés comme la Prévention du suivi intelligent (Intelligent Tracking Prevention, ITP) préviennent l’accès au témoin de session Auth0, demandant alors à l’utilisateur de s’authentifier.

Détection automatique de réutilisation
Lorsqu’un client a besoin d’un nouveau jeton d’accès, il envoie le jeton d’actualisation avec une requête à Auth0 pour obtenir une paire de jetons. Dès que la nouvelle paire est émise à Auth0, le jeton d’actualisation utilisé dans la requête est invalidé. Cela protège votre application contre les attaques par réinsertion résultant de jetons compromis. S’il ne peut pas appliquer la contrainte à l’envoyeur, il est impossible pour le serveur d’autorisations de savoir quel acteur est légitime ou malicieux dans un cas d’attaque par réinsertion. Il est donc important que le jeton d’actualisation le plus récemment émis soit immédiatement invalidé lorsqu’un jeton d’actualisation utilisé précédemment (déjà invalidé) est envoyé au serveur d’authentification. Cela empêche tout jeton d’actualisation de la même famille de jetons (tous les jetons d’actualisation provenant du jeton d’actualisation original émis) d’être utilisé pour obtenir de nouveaux jetons d’accès. Par exemple, considérez les scénarios suivants :
- Le client légitime possède le jeton d’actualisation 1, qui est divulgué ou volé par le client malveillant.
- Le client légitime utilise le jeton d’actualisation 1 pour obtenir une nouvelle paire de jeton d’actualisation / jeton d’accès.
- Auth0 renvoie le jeton d’actualisation 2/jeton d’accès 2.
- Le client malveillant tente alors d’utiliser le jeton d’actualisation 1 pour obtenir un jeton d’accès. Auth0 reconnaît que le jeton d’actualisation 1 est réutilisé et invalide immédiatement la famille de jetons d’actualisation, y compris le jeton d’actualisation 2.
- Auth0 revoit une réponse de refus d’accès au client malicieux.
- Le jeton d’accès 2 expire et le client légitime tente d’utiliser le jeton d’actualisation 2 pour demander une nouvelle paire de jetons. Auth0 revoit une réponse de refus d’accès au client légitime.
- Une réauthentification est nécessaire.
ferrt
indiquant l’échec de l’échange) dans les journaux. Cela peut être particulièrement utile en conjonction avec les capacités d’exportation de journaux d’Auth0 pour détecter les activités suspectes.
Un autre exemple est celui où le client malveillant vole le jeton d’actualisation 1 et l’utilise avec succès pour acquérir un jeton d’accès avant que le client légitime ne tente d’utiliser le jeton d’actualisation 1. Dans ce cas, l’accès du client malveillant serait de courte durée, car le jeton d’actualisation 2 (ou tout autre jeton d’actualisation émis ultérieurement) est automatiquement révoqué lorsque le client légitime tente d’utiliser le jeton d’actualisation 1, comme le montre le diagramme suivant :

Assistance trousse SDK
Les trousses SDK suivantes incluent la prise en charge de la rotation des jetons d’actualisation et la détection de réutilisation automatique.- Trousse SDK Auth0 pour les applications à page unique (SPA)
- Flutter (Web)
- Trousse SDK Swift (iOS)
- Trousse SDK pour Android
- Flutter
- Trousse SDK native React
- WPF/Winforms
- Xamarin