Passer au contenu principal
Si votre cas d’utilisation vise une non interactive, comme des API ou des serveurs d’arrière-plan, vous utiliserez une configuration machine à machine (M2M).

Cas d’utilisation

Utilisez le processus d’intégration M2M si vous :
  • prenez en charge des communications de service à service
  • exécutez des tâches planifiées ou des tâches cron sur des serveurs qui doivent accéder à des ressources protégées ou à des API
  • permettez à des appareils IoT de communiquer avec des services backend ou des API
  • avez une couche d’API qui doit communiquer avec d’autres couches d’API sans intervention de l’utilisateur ou après l’expiration d’un jeton utilisateur
  • avez une API privilégiée qui peut devoir être appelée avant qu’un utilisateur soit authentifié (c.-à-d. à partir d’une Action ou d’un script de base de données personnalisé dans votre locataire Auth0)
  • utilisez une passerelle API pour gérer les services backend
  • utilisez ou prenez en charge des applications non interactives ou d’autres outils ne nécessitant aucune interaction humaine, comme des démons ou des services backend
Ces services auront tout de même besoin d’un jeton d’accès M2M pour l’authentification.

Comment utiliser ce guide

Ce guide vous propose un parcours pour créer votre implémentation M2M dans Auth0. Nous y présentons des points à considérer, des pratiques exemplaires et des concepts à passer en revue.
  • Dans Architecture, nous vous recommandons de configurer Auth0 de manière à prendre en charge votre cycle de vie du développement logiciel et votre infrastructure existante.
  • Dans Créer un compte, nous fournissons des instructions pour créer votre instance d’API dans Auth0, ainsi qu’une application prenant en charge le flux d’authentification (ou grant) requis pour l’authentification machine à machine.
  • Dans Authentification, nous vous expliquons le grant à utiliser pour l’authentification, ainsi que les et les permissions (ou scopes) que vous pouvez définir.
  • Dans Image de marque, nous vous indiquons où trouver de l’information sur la façon de configurer les selon la façon dont vous prévoyez gérer les certificats.
  • Dans Automatisations de déploiement, vous pouvez en apprendre davantage sur nos outils conçus pour faciliter le déploiement.
  • Dans Assurance qualité, vous pouvez en apprendre davantage sur les tests unitaires et les vérifications de préparation offertes dans .

Architecture

Avant de configurer votre compte Auth0 et votre locataire, ou les groupes et les structures de vos services Auth0, dressez une cartographie de votre infrastructure existante afin de tirer le meilleur parti des fonctionnalités d’Auth0 dans votre écosystème actuel. Comme il est mentionné dans les scénarios courants, il se peut que vous ayez d’autres technologies non interactives dans votre domaine applicatif, votre domaine réseau ou votre domaine d’appareils M2M à prendre en compte avant de configurer Auth0. Pour voir un exemple de scénario M2M, consultez Server + API. Pour faire un labo pratique avec Node et tester le déploiement d’API, consultez notre dépôt GitHub. Vous pouvez aussi créer une représentation visuelle de votre pile technologique actuelle et planifier la façon dont Auth0 s’intègre à votre cycle de développement logiciel (SDLC). Cela peut vous aider à déterminer de combien de locataires vous pourriez avoir besoin.

Considérations

Avant de créer un nouveau compte ou de configurer votre premier locataire, vous voudrez peut-être tenir compte des éléments suivants :
  • La façon dont vous répartissez ou regroupez vos API afin d’appeler des points de terminaison précis.
    • Cela peut déterminer l’audience et d’autres claims dans les jetons d’accès.
  • Les consommateurs tiers de votre ressource peuvent demander un jeton d’accès pour chaque appel. Un nombre excessif d’appels pourrait avoir une incidence sur votre limite de débit.

Créer un compte

Maintenant que vous avez défini l’architecture, vous allez configurer votre compte Auth0 et vos locataires. Lorsque vous vous inscrivez aux services Auth0, vous créez votre premier locataire. C’est à cet endroit que vous configurez les composants, les services et les ressources Auth0. Inscrivez-vous pour commencer.

Avant de commencer

Dans Auth0 Dashboard ou à l’aide de Auth0 Management API, créez :
  • Une API pour représenter votre API
  • Une application M2M pour utiliser le flux Client Credentials
Il peut être utile de planifier certains détails de configuration avant de créer un compte.
  • Le nom de votre locataire joue un rôle dans votre domaine Auth0. Avant d’en choisir un, consultez les caractéristiques du locataire.
  • Les fonctionnalités Auth0 dont vous avez besoin pour votre cas d’utilisation. Certaines fonctionnalités sont offertes uniquement avec les forfaits Professional et Enterprise.
  • Déterminez si vous devez prendre en charge plusieurs environnements, comme le développement, la préproduction et la production. Pour en savoir plus, consultez Configurer plusieurs environnements.
  • Si votre cas d’utilisation comprend des applications tierces que vous souhaitez enregistrer dans un locataire, vous pouvez utiliser Dynamic Application Registration selon la spécification OIDC Client Registration.

Créer un locataire

Maintenant que l’architecture est définie, vous allez configurer votre compte Auth0 et votre .
Lorsque vous créez une API dans Auth0 Dashboard, une application de test pour l’API est automatiquement générée. Si vous créez une API de façon programmatique dans la Management API, vous devrez peut-être créer une application de test dans un appel séparé.

Enregistrer une API

Dans cette section, créez votre API dans Auth0.
Vous pouvez toujours mettre à jour votre API dans Auth0 Dashboard ou en appelant le point de terminaison de la Management API Mettre à jour un serveur de ressources.
Commencez par créer votre API dans Auth0 Dashboard.
  1. Suivez les instructions pour enregistrer votre API.
Dans la section Authentification, configurez les paramètres de votre API pour l’authentification M2M.

Associer une application

Vous devez établir une association entre votre application et votre API pour que votre application puisse lui demander des jetons d’accès. Vous en apprendrez davantage sur les autorisations d’application dans la section Authentification.
L’API d’Auth0 comporte plusieurs paramètres que vous devrez peut-être passer en revue avant de la configurer. Pour en savoir plus, consultez Paramètres de l’API.
Si vous créez votre API dans Auth0 Dashboard, Auth0 génère automatiquement une application de test et l’associe à votre API.
  1. Accédez à Auth0 Dashboard > Applications.
  2. Sélectionnez l’application de test M2M créée lorsque vous avez créé votre API.
    Vous pourrez créer plus tard une autre application pour le développement ou la production en suivant les instructions de Register Machine-to-Machine Applications.
  3. Passez à la vue API, puis repérez l’API que vous souhaitez activer pour cette application.
  4. Activez le bouton bascule Authorize, puis sélectionnez le bouton fléché à droite pour développer la carte.
  5. Sélectionnez Update.
    Dashboard > Applications > APIs
    Dans cette vue, vous pouvez utiliser la liste déroulante pour choisir les scopes à ajouter. Vous en apprendrez davantage sur les scopes lorsque nous aborderons les jetons d’accès dans la section Authentification.

Authentification

Lorsque vous appelez une API à partir d’une autre API, ou dans toute situation où il n’existe aucun contexte d’utilisateur authentifié, vous devez disposer d’un moyen d’autoriser l’application plutôt qu’un utilisateur. Il s’agit d’un processus en une seule étape au cours duquel l’application est authentifiée (à l’aide d’un client_id et d’un client_secret), puis autorisée en un seul appel. Pour authentifier des applications ou des services non interactifs, vous devez sélectionner une autorisation d’application, c’est-à-dire un flux d’authentification. Le flux d’identification du client ne nécessite aucune interaction humaine et convient le mieux aux applications M2M.

Avant de commencer

Dans Auth0 Dashboard ou Management API, vous allez :
  • Configurer votre application pour utiliser le flux d’identification du client
  • Mettre à jour les scopes de vos jetons d’accès M2M
Avant de configurer votre méthode d’authentification :
  • Consultez le flux d’identification du client pour l’authentification machine à machine. Il s’agit du flux de travail utilisé pour l’authentification et l’autorisation non interactives.
  • Déterminez le niveau d’accès requis pour vos API. Cela vous aidera à déterminer quels scopes, ou autorisations, vous configurerez lorsque vous créerez votre API.

Configurer le flux Client Credentials

Vous pouvez utiliser Auth0 Dashboard ou pour configurer le flux d’authentification afin d’échanger les identifiants de l’application contre un jeton d’accès. Suivez les instructions de Mise à jour des types d’octroi pour utiliser Auth0 Dashboard ou Management API.

Jetons d’accès M2M

Dans l’authentification basée sur des jetons, les applications non interactives fournissent client_id et client_secret lors d’un appel au point de terminaison des jetons de l’Authentication API pour obtenir un jeton d’accès. Ce jeton d’accès permet d’accéder à votre API protégée. Le profil, ou format, par défaut est le profil de jeton Auth0, qui est l’un des deux profils de jeton offerts. Vous pouvez choisir de le remplacer par le profil RFC 9068. Pour en savoir plus, consultez Profils de jeton d’accès. Pour vérifier que le jeton est valide, votre API vérifie les algorithmes de signature. L’ par défaut est RSA256, un algorithme à clé.
Auth0 prend en charge d’autres méthodes d’authentification d’application que la fourniture de l’ID client et du Secret client comme identifiants. Ces méthodes, y compris notre recommandation d’utiliser Private Key JWT pour les configurations M2M, sont offertes avec un forfait Enterprise. Pour en savoir plus, consultez Identifiants d’application.

Exemple

Une requête envoyée au point de terminaison /oauth/token devrait ressembler à l’exemple ci-dessous : La réponse devrait ressembler à l’exemple ci-dessous :
HTTP/1.1 200 OK
Content-Type: application/json
{
  "access_token":"eyJz93a...k4laUWw",
  "token_type":"Bearer",
  "expires_in":86400
}

Expiration du jeton

Vos jetons d’accès ont une durée de validité limitée. Comme vos communications se font sur le canal serveur à serveur, vous ne pouvez pas utiliser les pour prolonger les sessions; vous devriez donc envisager de configurer vos jetons d’accès avec une durée d’expiration d’une heure. Vous devrez peut-être trouver le bon équilibre entre sécurité et performance pour votre environnement. Pour en savoir plus, consultez Mettre à jour la durée de vie du jeton d’accès.

Scopes

Avant que des applications ou des services non interactifs appellent votre API, vous devez définir les autorisations, ou scopes, qu’autorise votre API. Vous pouvez définir dans Auth0 Dashboard les scopes à inclure dans votre requête d’authentification à l’Authentication API. Pour voir d’autres exemples d’utilisation des scopes d’API, consultez API Scopes. Pour configurer les scopes, suivez les instructions de Add API Permissions dans Auth0 Dashboard, ou utilisez l’exemple fourni pour Management API.
Pour ajouter des claims personnalisés à un jeton d’accès, vous pouvez utiliser le flux Machine-to-Machine d’Actions. Pour en savoir plus, consultez Machine to Machine Flow.

Image de marque

Même si vous prenez en charge des applications non interactives ou des services qui fonctionnent en canal serveur à serveur, vous pouvez tout de même personnaliser l’expérience pour qu’elle corresponde à l’apparence et au style de votre image de marque existante.

Domaines personnalisés

Auth0 permet d’utiliser des domaines personnalisés lorsque vous appelez le point de terminaison /authorize pour demander des jetons d’accès.

Mise en route M2M - domaines personnalisés

Dans Auth0 Dashboard, vous devez :
  • Enregistrer et vérifier votre domaine avant de pouvoir l’utiliser avec vos services Auth0.
  • Déterminer si vous souhaitez gérer votre propre certificat ou utiliser un certificat géré par Auth0. Pour en savoir plus sur les certificats, consultez Options de gestion des certificats.
  • Vérifier que la version de TLS (SSL) et la suite de chiffrement que vous souhaitez utiliser pour les certificats autogérés sont prises en charge par Auth0. Pour en savoir plus, consultez Versions et suites de chiffrement TLS (SSL).
  1. Pour configurer votre domaine personnalisé avec des certificats gérés par Auth0, suivez les instructions de Configurer des domaines personnalisés avec des certificats gérés par Auth0.
    1. Si vous souhaitez gérer vos propres certificats, suivez les instructions de Configurer des domaines personnalisés avec des certificats autogérés.
      Vous devez avoir un abonnement Enterprise pour gérer les certificats de votre domaine personnalisé. Pour en savoir plus, consultez Tarification d’Auth0 et Login.
  2. Consultez la configuration de l’API avec des domaines personnalisés. Vous devrez peut-être ajuster les paramètres de votre API pour tenir compte d’un domaine personnalisé.
Si vous rencontrez des problèmes avec votre domaine personnalisé, consultez Résoudre les problèmes liés aux domaines personnalisés.

Automatisation du déploiement

Auth0 prend en charge plusieurs options d’automatisation du déploiement, et chacune peut être utilisée avec les autres.

Bonne pratique

Quelle que soit la façon dont vous configurez l’automatisation du déploiement, nous vous recommandons d’effectuer des tests unitaires sur votre code personnalisé et vos Actions avant le déploiement, puis d’exécuter également des tests d’intégration sur votre locataire après le déploiement.

Outil Deploy CLI

Comme recommandé dans la section Architecture, vous devriez avoir des locataires Auth0 pour le développement, les tests et la production. Ces locataires devraient avoir des configurations identiques pour les contrôles de qualité et les tests; toutefois, des écarts de configuration entre vos environnements peuvent entraîner des erreurs. Par exemple, chaque environnement aura des et des différents. Pour réduire ces erreurs liées aux écarts de configuration, vous pouvez utiliser l’outil Deploy CLI pour intégrer votre instance Auth0 à votre pipeline CI/CD existant. Grâce au remplacement dynamique de mots-clés, vous pouvez remplacer les variables d’environnement dans des locataires qui partagent des configurations semblables. Pour en savoir plus, consultez l’outil Deploy CLI et le remplacement de mots-clés.

Actions Real-time Logs

Actions Real-time Logs affiche tous les journaux du code personnalisé en temps réel, y compris la sortie de console.log et les autres exceptions générées. Si vous utilisez Auth0 Actions ou une autre logique personnalisée, vous pouvez utiliser cette extension pour déboguer et résoudre les problèmes. Pour en savoir plus sur l’installation et la configuration, consultez Actions Real-time Logs.

Assurance qualité

L’assurance qualité est essentielle pour déceler les problèmes avant la mise en production. Selon la nature de votre projet, il existe plusieurs types de tests d’assurance qualité à envisager dans le cadre de votre intégration avec Auth0 :
  • Comment vos API se comporteront-elles lorsqu’elles seront soumises à des charges de production imprévues ?
  • Quel sera l’impact des applications tierces sur vos limites de débit ?
Si vous n’utilisez pas les widgets ni les fonctionnalités d’Auth0, comme , vous ne profiterez pas d’emblée des pratiques exemplaires intégrées en matière de convivialité et d’accessibilité sur un vaste éventail de navigateurs et d’appareils. Afin de garantir le respect des exigences fonctionnelles et la bonne gestion des événements imprévus, des conseils sont fournis pour tester l’intégration entre votre ou vos applications et Auth0, ainsi que pour effectuer des tests unitaires sur des modules d’extensibilité individuels, comme Auth0 Actions. Nous vous recommandons également de consulter la stratégie relative aux tests d’intrusion d’Auth0 et d’effectuer des tests simulés, en complément de notre stratégie relative aux tests de charge, afin de vous aider à vous assurer que votre ou vos applications fonctionnent sous une charge imprévue.

Tests unitaires

Les tests unitaires servent à vérifier des éléments d’extensibilité, comme les Auth0 Actions. Si vous utilisez du code personnalisé, nous vous recommandons d’utiliser un framework de test (comme Mocha) pour tester ce code supplémentaire avant le déploiement.

Tests simulés

Pour concilier la politique de tests de charge d’Auth0 et le besoin d’effectuer des tests de charge, il est courant de simuler les points de terminaison d’Auth0. C’est une pratique utile pour vérifier que votre configuration fonctionne avec les interfaces attendues sans devoir limiter vos tests, et des outils comme MockServer, JSON Server ou même Postman peuvent vous y aider.

Déploiement

Notre section Déployer et surveiller fournit des conseils sur les pratiques exemplaires de déploiement. Nous vous recommandons de consulter les Vérifications avant le déploiement, en particulier les vérifications de préparation intégrées dans Auth0 Dashboard. Pour consulter la vérification de préparation, sélectionnez le menu déroulant sous le nom et l’étiquette d’environnement de votre locataire dans Auth0 Dashboard > Exécuter les vérifications de préparation.
Auth0 Dashboard > Liste de vérification de préparation
Vous pouvez utiliser le filtre pour appliquer les vérifications de préparation aux applications sélectionnées. Ces vérifications ne s’appliquent pas aux API que vous avez configurées. Pour les vérifications qui ne s’appliquent pas à votre configuration particulière, vous pouvez sélectionner Ignorer pour les retirer des résultats finaux. Nous vous recommandons de consulter les pratiques exemplaires de déploiement pour effectuer les vérifications finales avant la mise en production et de tirer parti des journaux pour surveiller vos services.

En savoir plus