Découvrez comment fonctionne le flux implicite avec Form Post et pourquoi vous devriez l’utiliser pour les applications Web traditionnelles qui n’ont besoin que d’un ID Token pour authentifier l’utilisateur.
Ne vous laissez pas induire en erreur par le terme « implicite » ! Bien qu’OAuth déconseille désormais l’utilisation de l’octroi implicite pour obtenir des jetons d’accès dans les SPA, le scénario visé par le flux implicite avec Form Post est complètement différent et n’est pas concerné par les problèmes de sécurité qui ont mené à déconseiller son utilisation avec les SPA. Plus précisément, le flux implicite avec Form Post s’applique aux applications Web traditionnelles, contrairement aux SPA. Vous obtenez des ID Token plutôt que des jetons d’accès, qui n’ont pas du tout le même usage. Le flux utilise POST au lieu de placer les jetons dans des fragments d’URL (comme c’est le cas avec les SPA), ce qui peut exposer des éléments du jeton à des attaques liées à l’historique du navigateur, aux en-têtes de redirection, etc.
Vous pouvez utiliser Connect (OIDC) avec différents flux pour permettre la connexion Web dans une application Web traditionnelle. Dans un flux courant, vous obtenez un au moyen du flux de code d’autorisation exécuté par le serveur principal de l’application. Cette méthode est efficace et robuste, mais elle exige que votre application Web obtienne et gère un secret. Vous pouvez éviter cette contrainte si tout ce que vous voulez faire est d’implémenter la connexion et que vous n’avez pas besoin d’obtenir des pour appeler des API.Le flux implicite avec Form Post utilise OIDC pour implémenter une connexion Web très semblable au fonctionnement de et de WS-Federation. L’application Web demande et obtient des jetons par le canal frontal, sans avoir besoin de secret ni d’appels supplémentaires au serveur principal. Avec cette méthode, vous n’avez pas à obtenir, gérer, utiliser ni protéger un secret dans votre application.
Vous devriez utiliser ce flux uniquement pour les cas d’utilisation de connexion; si vous devez demander des jetons d’accès pendant la connexion de l’utilisateur afin de pouvoir appeler une API, utilisez le flux de code d’autorisation avec PKCE ou le flux hybride.
L’utilisateur clique sur Connexion dans l’application.
Le SDK d’Auth0 redirige l’utilisateur vers le serveur d’autorisation Auth0 (point de terminaison /authorize) en transmettant un paramètre response_type ayant la valeur id_token, qui indique le type d’identifiant demandé. Il transmet également un paramètre response_mode ayant la valeur form_post pour assurer la sécurité.
Votre serveur d’autorisation Auth0 redirige l’utilisateur vers l’invite de connexion et d’autorisation.
L’utilisateur s’authentifie à l’aide de l’une des options de connexion configurées et peut voir une page de consentement énumérant les autorisations qu’Auth0 accordera à l’application.
Votre serveur d’autorisation Auth0 redirige l’utilisateur vers l’application avec un ID Token.