
Flux de connexion
La plupart des types d’applications (comme les applications Web, les applications monopages et les applications natives) devraient utiliser le flux de code d’autorisation avec PKCE pour authentifier les utilisateurs lors de la connexion. Ce flux consiste à échanger un code d’autorisation contre des jetons.Le flux de code d’autorisation avec PKCE remplace le flux implicite auparavant utilisé pour les applications monopages sans composant côté serveur. Tout nouveau développement doit utiliser ce flux pour assurer une sécurité optimale. Il est également fortement recommandé de faire migrer les applications existantes qui utilisent le flux implicite vers le flux de code d’autorisation avec PKCE.
L’utilisateur se connecte avec son nom d’utilisateur et son mot de passe
Dans cet exemple, un utilisateur se connecte manuellement avec son nom d’utilisateur et son mot de passe :- Le SDK d’Auth0 crée une session locale et redirige l’utilisateur vers le serveur d’autorisation d’Auth0 (terminal
/authorize). - Le serveur d’autorisation crée une session, puis redirige l’utilisateur vers l’écran de connexion et d’autorisation.
- L’utilisateur s’authentifie avec son nom d’utilisateur et son mot de passe.
- Le serveur d’autorisation d’Auth0 met à jour la session de l’utilisateur créée précédemment pour indiquer qu’il est connecté.
- Selon le flux utilisé, le serveur d’autorisation redirige l’utilisateur vers votre application et lui transmet soit un jeton d’ID, soit un code d’autorisation.
- Votre application échange le jeton ou le code d’autorisation contre un jeton d’accès et termine le flux.
- La session locale (storezero.io), qui indique à l’application si un utilisateur est authentifié.
-
La session du (storezero.auth0.com), qui indique au serveur si un utilisateur est authentifié. La session du serveur peut aussi conserver des renseignements sur l’authentification.
- Par exemple, le serveur d’autorisation peut enregistrer si un utilisateur a eu recours à l’authentification multifacteur (MFA). Cette information peut ensuite servir à déterminer s’il faut inviter l’utilisateur à se connecter ou à utiliser la MFA la prochaine fois qu’il accède au serveur d’autorisation.
L’utilisateur se connecte avec un fournisseur d’identité
Dans cet exemple, l’utilisateur choisit de se connecter avec Facebook plutôt qu’avec son nom d’utilisateur et son mot de passe :- Le SDK d’Auth0 crée une session locale et redirige l’utilisateur vers le serveur d’autorisation d’Auth0 (terminal
/authorize). - Le serveur d’autorisation crée une session, puis redirige l’utilisateur vers l’écran de connexion et d’autorisation.
- Lorsque l’utilisateur choisit de se connecter avec Facebook, le serveur d’autorisation le redirige vers Facebook.
- Facebook crée une session et authentifie l’utilisateur, puis met à jour sa session pour indiquer qu’il est connecté.
- Facebook renvoie l’utilisateur au serveur d’autorisation d’Auth0, qui met à jour sa session pour indiquer qu’il est connecté.
- Selon le flux utilisé, le serveur d’autorisation renvoie l’utilisateur vers votre application avec un jeton d’ID ou un code d’autorisation.
- Votre application échange le jeton ou le code d’autorisation contre un jeton d’accès, ce qui termine le flux.
Gestion des sessions pour les applications monopages
Dans les exemples précédents, une session locale est créée lorsque l’utilisateur amorce l’un ou l’autre des flux de connexion. Elle permet aux utilisateurs de rester connectés et de déterminer à quel moment ils doivent s’authentifier de nouveau. Toutefois, les applications sans composante côté serveur, comme les applications monopages (SPA), ne peuvent pas utiliser de session locale. Elles ont plutôt recours à l’authentification silencieuse pour garder les utilisateurs connectés. L’authentification silencieuse s’appuie sur la session du serveur d’autorisation pour déterminer quand un utilisateur doit s’authentifier de nouveau. Une iframe masquée redirige les demandes d’authentification vers le serveur d’autorisation avec le paramètreprompt=none. Ce paramètre empêche le serveur de demander une intervention à l’utilisateur.
- Si la session du serveur d’autorisation n’a pas expiré, la transaction se poursuit sans interruption. Le serveur envoie un au moyen de WMRM (Web Message Response Mode), qui utilise
postMessage. - Si la session du serveur d’autorisation a expiré ou si l’utilisateur se déconnecte, la redirection dans l’iframe renvoie une erreur. L’application doit alors diriger l’utilisateur vers le serveur d’autorisation pour qu’il s’authentifie de nouveau.