Lors de l’exécution de plusieurs flux, votre application doit aussi s’authentifier auprès du serveur d’autorisation. Pour en savoir plus sur l’authentification des applications, lisez Identifiants de l’application.
Selon les politiques d’accès des applications aux API que vous configurez pour une API, vous devrez peut-être créer les autorisations client correspondantes pour votre application. Pour en savoir plus, lisez Accès des applications aux API : politiques et autorisations client.
Flux de code d’autorisation
Comme les applications Web traditionnelles sont des applications côté serveur dont le code source n’est pas exposé publiquement, elles peuvent utiliser le flux de code d’autorisation, qui échange un code d’autorisation contre un jeton.- Flux de code d’autorisation
- Ajouter la connexion à l’aide du flux de code d’autorisation
- Appeler l’API à l’aide du flux de code d’autorisation
Flux de code d’autorisation avec clé de preuve pour l’échange de code (PKCE)
Pendant l’authentification, les applications mobiles et les applications natives peuvent utiliser le flux de code d’autorisation, mais elles ont besoin d’une sécurité supplémentaire. De plus, les applications monopage posent des défis particuliers. Pour atténuer ces défis, OAuth 2.0 propose une version du flux de code d’autorisation qui utilise une clé de preuve pour l’échange de code (PKCE).- Flux de code d’autorisation avec clé de preuve pour l’échange de code (PKCE)
- Ajouter l’ouverture de session à l’aide du flux de code d’autorisation avec PKCE
- Appeler une API à l’aide du flux de code d’autorisation avec PKCE
Flux de code d’autorisation avec une protection renforcée de la confidentialité
Pendant le processus d’authentification et d’autorisation, certains cas d’utilisation, comme l’autorisation transactionnelle, échangent des informations contextuelles qui peuvent contenir des données sensibles. Pour protéger ces données et autres renseignements sensibles, vous pouvez utiliser différentes améliorations du protocole pour le flux de code d’autorisation :- Flux de code d’autorisation avec des Rich Authorization Requests (RAR)
- Flux de code d’autorisation avec des requêtes d’autorisation poussées (PAR)
- Flux de code d’autorisation avec des JWT-Secured Authorization Requests (JAR)
- JSON Web Encryption (JWE)
Flux implicite avec Form Post
Comme solution de rechange au flux de code d’autorisation, OAuth 2.0 offre le flux implicite, qui est destiné aux , ou aux applications qui ne peuvent pas stocker des de manière sécurisée. Bien que cette approche ne soit plus considérée comme une bonne pratique pour demander des , lorsqu’elle est utilisée avec le mode de réponse Form Post, elle offre un processus simplifié si l’application a seulement besoin d’un pour effectuer l’authentification de l’utilisateur.- Flux implicite avec Form Post
- Ajouter la connexion à l’aide du flux implicite avec Form Post
- Authentifier les SPA avec des cookies
Flux hybride
Les applications qui peuvent stocker des secrets client de façon sécuritaire peuvent tirer parti du flux hybride, qui combine des fonctionnalités du flux de code d’autorisation et du flux implicite avec Form Post pour permettre à votre application d’obtenir immédiatement un jeton ID, tout en assurant une récupération sécuritaire et fiable des jetons d’accès et des . Cela peut être utile lorsque votre application doit accéder immédiatement à des renseignements sur l’utilisateur, mais qu’elle doit effectuer un certain traitement avant d’accéder à des ressources protégées pendant une période prolongée.Client Credentials Flow
Avec les applications machine-to-machine (M2M), comme les CLI, les démons ou les services exécutés sur votre back-end, le système authentifie et autorise l’application plutôt qu’un utilisateur. Dans ce contexte, les mécanismes d’authentification habituels, comme Identifier + Password ou les connexions via les réseaux sociaux, ne s’appliquent pas. Les applications M2M utilisent plutôt le Client Credentials Flow (défini dans la RFC 6749 d’OAuth 2.0, section 4.4).Flux d’autorisation de l’appareil
Avec les appareils à capacité de saisie limitée qui se connectent à Internet, au lieu d’authentifier directement l’utilisateur, l’appareil lui demande d’ouvrir un lien sur son ordinateur ou son téléphone intelligent afin d’autoriser l’appareil. Cela évite une mauvaise expérience utilisateur sur les appareils qui ne permettent pas de saisir du texte facilement. Pour ce faire, les applications de l’appareil utilisent le flux d’ de l’appareil (défini dans OAuth 2.0). À utiliser avec les applications mobiles/natives.Flux de mot de passe du propriétaire de la ressource
Bien que nous ne le recommandions pas, les applications hautement fiables peuvent utiliser le flux de mot de passe du , dans lequel les utilisateurs doivent fournir leurs identifiants (identifiant et mot de passe), généralement au moyen d’un formulaire interactif. Le flux de mot de passe du propriétaire de la ressource ne doit être utilisé que lorsqu’il est impossible d’utiliser des flux avec redirection (comme le flux de code d’autorisation).- Flux de mot de passe du propriétaire de la ressource
- Appeler une API à l’aide du flux de mot de passe du propriétaire de la ressource
Client-Initiated Backchannel Authentication Flow
Avec le Client-Initiated Backchannel Authentication Flow (CIBA), au lieu d’authentifier directement l’utilisateur, le backend de l’application cliente déclenche un flux d’authentification pour inviter l’utilisateur à s’authentifier. L’authentification elle-même s’effectue sur un appareil d’authentification distinct, généralement un téléphone intelligent exécutant une application personnalisée.- Client-Initiated Backchannel Authentication Flow
- Authentification de l’utilisateur avec CIBA
- Autorisation de l’utilisateur avec CIBA
Échange de jetons personnalisé
L’Échange de jetons personnalisé (CTE) permet aux applications d’échanger des jetons d’identité préexistants contre des jetons Auth0 en appelant le endpoint/oauth/token, comme défini dans la RFC 8693. Par exemple, vous pouvez utiliser l’Échange de jetons personnalisé pour échanger des jetons Auth0 afin d’accéder à une autre audience au nom de l’utilisateur. Pour en savoir plus sur les cas d’utilisation de l’Échange de jetons personnalisé, consultez Exemples de cas d’utilisation.
En associant un Profil d’échange de jetons personnalisé à une Action qui contient une logique personnalisée, vous pouvez mettre en place des flux de travail liés à l’identité hautement personnalisés en échangeant un jeton de sécurité contre un autre, tout en gardant la maîtrise de la logique d’autorisation.