- Elle est fournie au client à l’aide de votre propre système dorsal.
- Elle possède le même domaine que votre système dorsal.
- Elle effectue des appels d’API qui nécessitent une authentification à votre système dorsal.
Fonctionnement
Les étapes ci-dessous montrent comment récupérer et utiliser les jetons. Dans cette approche, le Flux implicite avec Form Post est utilisé au lieu d’un Flux de code d’autorisation avec Proof Key for Code Exchange traditionnel. Cela est possible grâce au mode de réponse du formulaire post qui facilite l’authentification lorsqu’il s’agit d’accéder à votre propre ressource.
- L’utilisateur accède à une route protégée en utilisant le navigateur ou effectue une action qui nécessite l’initialisation d’une étape d’authentification, comme cliquer sur un bouton de connexion.
- Le client du navigateur redirige vers une route
/login
sur le système dorsal, ou vers la route protégée selon les actions de l’utilisateur. - Le système dorsal construit une requête au point de terminaison
/authorize
du serveur d’autorisation et redirige le client du navigateur à cet endroit. - L’utilisateur est invité à s’authentifier en utilisant la méthode présentée par le serveur d’autorisation.
- Le serveur d’autorisation POST les jetons à l’URI de redirection sous forme de message codé par URL. Le système dorsal est capable de récupérer ces jetons en analysant les données du corps.

Témoins non valides ou manquants
Lors de la mise en œuvre de cette approche, vous devrez gérer les cas où le témoin d’authentification est invalide ou manquant. L’appel d’API au système dorsal du client se fait en arrière-plan, de sorte que le client doit traiter toute réponse du serveur indiquant qu’il faut que l’utilisateur se réauthentifie. Dans l’exemple d’application suivant, on traite le cas de manière naïve en demandant à l’utilisateur de se réauthentifier si l’appel API donne un résultat 302 Redirect. Le résultat 302 se produit parce que, après une tentative infructueuse de validation du témoin, le serveur essaie de rediriger vers le point de terminaison d’autorisation du serveur d’autorisation et envoie cette réponse au client.Exemple
Pour illustrer les concepts abordés plus haut, l’exemple d’application utilise Node.js et Express.Prérequis
- Assurez-vous d’avoir installé la version la plus récente de Node pour continuer.
-
Une fois le nœud installé, téléchargez ou clonez le code source et ouvrez le dossier du projet dans une fenêtre de terminal.
-
La branche
master
représente l’état de l’application avant que toute authentification soit ajoutée. Si vous souhaitez consulter la version finale de l’application, consultez la branchewith-oidc
:git checkout with-oidc
Initialiser l’application Node.js
Installez les dépendances de l’application en exécutantnpm install
depuis votre fenêtre Terminal. Pour exécuter l’application, utilisez npm run dev
. Cela lance le serveur Express. Rendez-vous à http://localhost:3000 dans votre navigateur pour voir l’application.
Les serveurs de développement utilisent nodemon
, qui redémarre automatiquement dès qu’il détecte des changements de fichiers.
Explorez l’application
Lorsque l’application est ouverte à http://localhost:3000, cliquez sur le bouton Call API (Appeler l’API). Un message devrait s’afficher à l’écran.
Mise en place de l’environnement
Pour que l’application fonctionne avec l’authentification,express-openid-connect
nécessite la présence de certaines variables d’environnement. Pour cette application, ces variables peuvent être indiquées dans un fichier .env
. Créez un fichier .env
dans la racine du répertoire du projet, puis remplissez-le comme suit :
Configurer l’application dans Auth0
- Naviguez vers Dashboard (Tableau de bord) > Applications > Applications et cliquez sur Create Application (Créer une application).
- Nommez votre nouvelle application, sélectionnez Regular Web Applications (Applications Web classiques), et cliquez sur Create (Créer)
-
Dans les Paramètres de votre nouvelle application, ajoutez
http:/localhost:3000/callback
aux URL de rappel autorisées. -
Ajoutez
http:/localhost:3000
aux URL de déconnexion autorisées. - Cliquez sur Enregistrer les modifications.
- Rendez-vous à Dashboard (Tableau de bord)> Authentication (Authentification) > Social (Via réseau social) et configurez des connexions via réseau social. Activez-les pour votre application dans les options de l’application dans l’onglet Connections (Connexions). L’exemple se base sur la base de données nom d’utilisateur/mot de passe, Facebook, Google, et X.
- Sur l’écran Settings (Paramètres), notez les paramètres du domaine et de l’ID client dans la partie supérieure.
-
Deux valeurs doivent être définies dans l’application. Recherchez le fichier
env
et attribuez les valeurs ci-dessous :
Exécuter l’application
- Après avoir terminé la configuration du serveur et de l’environnement, cherchez la fenêtre de votre navigateur où l’application est ouverte. Si vous avez fermé le navigateur et arrêté le serveur, exécutez la commande suivante à partir du terminal pour redémarrer l’application :
npm run dev
- Ouvrez http://localhost:3000 dans votre navigateur. En ce qui a trait à l’expérience utilisateur, l’application devrait conserver la même apparence. Cependant, lorsque vous cliquerez sur le bouton Call API (Appeler l’API), un message d’avertissement devrait s’afficher indiquant que l’utilisateur n’est pas connecté. Notez également que vous ne voyez pas le message « Hello, World » comme avant puisque l’appel à l’API a été rejeté.
- Cliquez sur Log in now (Se connecter maintenant) pour vous connecter. Une fois que vous avez été authentifié, vous retournerez à l’application et verrez une interface utilisateur mise à jour qui reflète votre nouveau statut de connexion. Vous devriez pouvoir cliquer à nouveau sur le bouton Call API (Appeler l’API) pour déclencher un nouvel appel vers le serveur, qui devrait désormais fonctionner correctement.
- Cliquez sur le lien Profile (Profil) en haut de la page pour afficher les informations sur l’utilisateur récupérées à partir du jeton d’ID.