- flux de code d’autorisation
- flux de code d’autorisation with Proof Key for Code Exchange
- Device Authorization Flow
- Resource Owner Password Flow
Maintenir les sessions utilisateur dans les SPA
Jusqu’à tout récemment, les SPA maintenaient la session de l’utilisateur au moyen du flux de code d’autorisation avec PKCE, conjointement avec l’authentification silencieuse. Les récentes avancées en matière de protection de la vie privée dans les navigateurs, comme Intelligent Tracking Prevention (ITP), empêchent toutefois l’accès au Auth0, ce qui oblige les utilisateurs à se réauthentifier.

Détection automatique de la réutilisation
Lorsqu’un client a besoin d’un nouveau jeton d’accès, il envoie le jeton d’actualisation avec la requête à Auth0 pour obtenir une nouvelle paire de jetons. Dès que cette nouvelle paire est émise par Auth0, le jeton d’actualisation utilisé dans la requête est invalidé. Cela protège votre application contre les attaques par rejeu causées par des jetons compromis. Sans appliquer de contrainte de l’émetteur, il est impossible pour le de déterminer quel acteur est légitime ou malveillant en cas d’attaque par rejeu. Il est donc important que le jeton d’actualisation émis le plus récemment soit lui aussi invalidé immédiatement lorsqu’un jeton d’actualisation déjà utilisé (et déjà invalidé) est envoyé au serveur d’autorisation. Cela empêche l’utilisation de tout jeton d’actualisation de la même famille de jetons (c’est-à-dire tous les jetons d’actualisation dérivés du jeton d’actualisation initial émis pour le client) pour obtenir de nouveaux jetons d’accès. Par exemple, considérez le scénario suivant :
- Le client légitime possède le jeton d’actualisation 1, qui est divulgué au client malveillant ou volé par celui-ci.
- Le client légitime utilise le jeton d’actualisation 1 pour obtenir une nouvelle paire jeton d’actualisation/jeton d’accès.
- Auth0 renvoie le jeton d’actualisation 2/jeton d’accès 2.
- Le client malveillant tente ensuite 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 renvoie une réponse d’accès refusé au client malveillant.
- 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 renvoie une réponse d’accès refusé au client légitime.
- Une réauthentification est nécessaire.
ferrt, qui indique un échange échoué). Cela peut être particulièrement utile avec les capacités de diffusion des journaux d’Auth0 pour repérer 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 obtenir un jeton d’accès avant que le client légitime n’essaie 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 jeton d’actualisation émis par la suite) est automatiquement révoqué lorsque le client légitime tente d’utiliser le jeton d’actualisation 1, comme le montre le diagramme suivant :

Prise en charge des SDK
Les SDK suivants prennent en charge la rotation des jetons d’actualisation et la détection automatique de la réutilisation.- Auth0 SPA SDK
- Flutter (Web)
- SDK Swift (iOS)
- Android SDK
- Flutter
- SDK React Native
- WPF / Winforms
- Xamarin
offline_access dans le SDK client.