Passer au contenu principal
Si vous avez plusieurs implémentations d’API distinctes qui font toutes, sur le plan logique, partie de la même API, vous pouvez simplifier votre processus d’autorisation en les représentant par une seule API logique dans le . Cela vous permet de mettre en œuvre un seul , tout en continuant à contrôler l’accès aux API individuelles en attribuant les scopes appropriés. Les sections suivantes décrivent comment utiliser et représenter plusieurs API sous la forme d’un seul dans Auth0. Nous utiliserons l’exemple d’application suivant. Cette application utilise une architecture de microservices et contient :
  • 2 API Node.js : contacts et calendar (vous pouvez les considérer comme des microservices)
  • 1 Resource Server représentant les 2 API
  • 2 scopes avec espace de noms : read:contacts et read:calendar
  • Le flux implicite pour obtenir un access_token qui fonctionne pour les deux API
Nous représenterons les deux API à l’aide d’une seule API Auth0 appelée Organizer Service. Nous créerons ensuite deux scopes pour montrer comment utiliser le flux implicite afin d’accéder aux API calendar et contacts à partir de la SPA. Vous devez effectuer les étapes suivantes :
  1. Activer une connexion pour votre application
  2. Créer un utilisateur de test
  3. Enregistrer une API logique dans Auth0
  4. Configurer les scopes pour l’API logique
  5. Accorder l’accès à l’API logique
  6. (Facultatif) Mettre en œuvre la déconnexion unique (SLO) ou l’authentification unique (SSO)

Prérequis

  • Enregistrez votre application.
    • Sélectionnez Application Type comme Application monopage.
    • Ajoutez http://localhost:3000 et http://localhost:3000/callback.html aux Allowed Callback URLs.
  • Téléchargez l’application exemple. Pour savoir comment configurer l’application exemple, consultez le README.

Activer une connexion pour votre application

Vous aurez besoin d’une source d’utilisateurs pour l’application que vous venez d’enregistrer; vous devrez donc configurer une connexion. Pour cet exemple, nous créerons une simple Connexion de base de données qui demande uniquement l’adresse de courriel de l’utilisateur et un mot de passe. Pour en savoir plus, consultez Configurer les connexions de base de données.

Créer un utilisateur de test

Comme vous travaillez avec une connexion nouvellement créée, aucun utilisateur n’y est associé. Avant de pouvoir tester le processus de connexion de l’application d’exemple, vous devrez créer un utilisateur et l’associer à la connexion. Veillez donc à sélectionner la Connexion que vous venez de créer lorsque vous créez l’utilisateur. Pour en savoir plus, consultez Créer des utilisateurs.

Enregistrer une API logique dans Auth0

Enregistrez une seule API logique que vous utiliserez pour représenter les différentes API comprises dans l’application exemple. Pour cet exemple, nommez votre API Organizer Service et définissez son identifiant unique sur organize. Par défaut, l’ des jetons obtenus pour cette API est RS256; vous devez le laisser tel quel. Pour en savoir plus, consultez Enregistrer des API.

Configurer les autorisations pour l’API logique

Pour permettre à l’API logique de représenter les API incluses dans l’application exemple, vous devrez créer les autorisations appropriées (scopes). Les scopes vous permettent de définir quelles actions d’API seront accessibles aux applications appelantes. Un scope représente une combinaison API/action. Dans cet exemple, vous voulez que les applications appelantes puissent effectuer des opérations read sur une API appelée calendar et sur une autre appelée contacts; vous devrez donc créer les autorisations suivantes :
  • read:calendar
  • read:contacts
Vous pouvez considérer chacune d’elles comme un microservice. Pour en savoir plus, consultez Add API Permissions et API Scopes.

Accorder l’accès à l’API logique

Vous êtes maintenant prêt à accorder l’accès à vos API en permettant à l’API logique d’obtenir des . En incluant les scopes nécessaires, vous pouvez contrôler l’accès d’une application aux API représentées par l’API logique. Les étapes suivantes utilisent le flux implicite pour correspondre à l’exemple. Toutefois, vous pouvez utiliser le flux qui convient le mieux à vos besoins. Par exemple : Pour en savoir plus sur les flux d’autorisation, consultez Flux d’authentification et d’autorisation.
  1. L’utilisateur clique sur Login dans l’application monopage, et l’application redirige l’utilisateur vers le serveur d’autorisation Auth0 (point de terminaison /authorize). Pour en savoir plus sur les paramètres de l’appel, consultez notre tutoriel : Appeler votre API à l’aide du flux de code d’autorisation avec PKCE.
    Page de connexion de l’application exemple
  2. Votre serveur d’autorisation Auth0 redirige l’utilisateur vers la page de connexion, où l’utilisateur s’authentifie à l’aide de l’une des options de connexion configurées.
    Page de connexion Lock
  3. S’il s’agit de la première fois que l’utilisateur passe par ce flux, il voit une invite de consentement énumérant les autorisations qu’Auth0 accordera à l’application monopage. Dans ce cas, l’utilisateur doit consentir à ce que l’application lise ses contacts et son calendrier.
    Écran Consent Lock de l’application exemple
  4. Si l’utilisateur y consent, Auth0 le redirige vers l’application monopage avec des jetons dans le fragment hash de l’URI. L’application monopage peut maintenant extraire les jetons du fragment hash à l’aide de JavaScript et utiliser le jeton d’accès pour appeler vos API au nom de l’utilisateur.
    function getParameterByName(name) {
      var match = RegExp('[#&]' + name + '=([^&]*)').exec(window.location.hash);
      return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
    }
    
    function getAccessToken() {
      return getParameterByName('access_token');
    }
    
    Dans notre exemple, une fois la connexion réussie, vous verrez des boutons qui vous permettent d’appeler l’une ou l’autre de vos API à l’aide du jeton d’accès obtenu de l’API logique.
    Écran utilisateur autorisé de l’application exemple

Implémenter la déconnexion unique (SLO) ou l’authentification unique (SSO)

Dans certains scénarios impliquant plusieurs applications, où la déconnexion unique est souhaitée (lorsqu’un utilisateur se déconnecte d’une application, il doit aussi être déconnecté des autres applications), une application peut être configurée pour effectuer une scrutation périodique d’Auth0 à l’aide de checkSession() afin de vérifier si une session existe. Si aucune session n’existe, vous pouvez alors déconnecter l’utilisateur de l’application. La même méthode de scrutation peut aussi être utilisée pour implémenter l’authentification silencieuse dans un scénario d’ (SSO). L’intervalle de scrutation entre les vérifications à checkSession() doit être d’au moins 15 minutes afin d’éviter tout problème futur lié à la limite de débit de cet appel.

En savoir plus