Passer au contenu principal
Les fournisseurs d’identité (IdP) les plus courants sont disponibles dans Auth0 Dashboard et dans le Auth0 Marketplace. Vous pouvez toutefois ajouter n’importe quel fournisseur en tant que connexion sociale personnalisée dans .
  1. Dans le Dashboard, accédez à Authentication > Social.
  2. Sélectionnez Créer une connexion, faites défiler jusqu’au bas de la liste, puis sélectionnez Créer une connexion personnalisée.
Le formulaire qui s’affiche contient plusieurs champs que vous devez utiliser pour configurer la connexion personnalisée :
  • Nom de la connexion : identifiant logique de la connexion que vous créez. Ce nom ne peut pas être modifié, doit commencer et se terminer par un caractère alphanumérique, et ne peut contenir que des caractères alphanumériques et des tirets.
  • URL d’autorisation : URL vers laquelle les utilisateurs sont redirigés pour se connecter.
    N’essayez pas de définir le paramètre OAuth2 response_mode dans l’URL d’autorisation. Cette connexion prend uniquement en charge la valeur response_mode par défaut (query).
  • URL du jeton : URL utilisée pour échanger le code d’autorisation reçu contre des et, si demandé, des .
  • Scope : paramètres scope à envoyer avec la requête d’autorisation. Séparez plusieurs scopes par des espaces.
  • Séparer les scopes à l’aide d’un espace : option qui détermine comment les scopes sont délimités si le paramètre connection_scope est inclus lors de l’appel de l’API du fournisseur d’identité. Par défaut, les scopes sont délimités par une virgule. Si l’option est activée, les scopes sont délimités par un espace. Pour en savoir plus, consultez Ajouter des scopes/autorisations pour appeler les API du fournisseur d’identité.
  •  : ID client d’Auth0 en tant qu’application utilisée pour demander l’autorisation et échanger le code d’autorisation. Pour obtenir un ID client, vous devrez vous enregistrer auprès du .
  •  : secret client d’Auth0 en tant qu’application utilisée pour échanger le code d’autorisation. Pour obtenir un secret client, vous devrez vous enregistrer auprès du fournisseur d’identité.
  • Script de récupération du profil utilisateur : script Node.js utilisé pour appeler une URL userinfo avec le jeton d’accès fourni. Pour en savoir plus sur ce script, consultez Script de récupération du profil utilisateur.
  • Objectif : active la connexion sociale pour l’authentification, les comptes connectés pour Token Vault, ou les deux. Pour en savoir plus, consultez Authentification de l’utilisateur vs comptes connectés.
Lors de la configuration du fournisseur d’identité personnalisé, utilisez l’URL de rappel https://{yourDomain}/login/callback.
Une fois la connexion personnalisée créée, la vue Applications s’affichera, et votre connexion sera assujettie à la politique de limitation du taux d’Auth0. Vous pouvez y activer ou désactiver les applications pour lesquelles vous voulez que la connexion s’affiche.

Mettre à jour le flux d’authentification

Lorsque vous créez une connexion, le type d’octroi OAuth 2.0 attribué par défaut à la connexion est Authorization Code Flow. Si vous avez une application publique qui ne peut pas stocker de Secret client, comme une application à page unique ou une application native, vous pouvez utiliser la pour mettre à jour la connexion afin qu’elle utilise Authorization Code Flow + PKCE. Pour en savoir plus sur les , consultez Quel flux OAuth 2.0 devrais-je utiliser ?
  1. Effectuez une requête GET au point de terminaison /get-connections-by-id. La réponse ressemblera à ceci :
    {
      "id": "[connectionID]",
      "options": {
        "email": true,
        "scope": [
          "email",
          "profile"
        ],
        "profile": true
      },
      "strategy": "google-oauth2",
      "name": "google-oauth2",
      "is_domain_connection": false,
      "realms": [
        "google-oauth2"
      ]
    }
    
  2. Copiez l’objet options en entier.
  3. Effectuez une requête PATCH avec l’objet options et ajoutez "pkce_enabled": true.
Si vous n’incluez pas l’objet options en entier, des informations seront perdues et la connexion cessera de fonctionner.

Script de récupération du profil utilisateur

Le script de récupération du profil utilisateur est appelé après que l’utilisateur a ouvert une session avec le fournisseur OAuth2. Auth0 exécute ce script pour appeler l’API du fournisseur OAuth2 et obtenir le profil de l’utilisateur :
function fetchUserProfile(accessToken, context, callback) {
  request.get(
    {
      url: 'https://auth.example.com/userinfo',
      headers: {
        'Authorization': 'Bearer ' + accessToken,
      }
    },
    (err, resp, body) => {
      if (err) {
        return callback(err);
      }
      if (resp.statusCode !== 200) {
        return callback(new Error(body));
      }
      let bodyParsed;
      try {
        bodyParsed = JSON.parse(body);
      } catch (jsonError) {
        return callback(new Error(body));
      }
      const profile = {
        user_id: bodyParsed.account.uuid,
        email: bodyParsed.account.email
      };
      callback(null, profile);
    }
  );
}
La propriété user_id dans le profil renvoyé est requise, et la propriété email est facultative, mais fortement recommandée. Pour en savoir plus sur les attributs qui peuvent être renvoyés, consultez Attributs racine du profil utilisateur. Vous pouvez filtrer, ajouter ou supprimer tout élément du profil renvoyé par le fournisseur. Toutefois, il est recommandé de garder ce script aussi simple que possible. Un traitement plus avancé des informations de l’utilisateur peut être effectué au moyen de Rules. L’un des avantages des Rules est qu’elles s’appliquent à toute connexion.

Connectez-vous à l’aide de la connexion personnalisée

Vous pouvez utiliser n’importe quel mécanisme standard d’Auth0 pour permettre à un utilisateur de se connecter à l’aide de votre connexion personnalisée. Un lien direct ressemblerait à ceci :

Modifier l’icône et le nom d’affichage

Pour ajouter une icône au bouton de connexion du fournisseur d’identité ou modifier le texte affiché sur ce bouton, vous pouvez utiliser respectivement la propriété icon_url de l’objet options et la propriété display_name au moyen de la Management API.
  • Si display_name n’est pas inclus dans votre requête, le champ est remplacé par la valeur name de la Connexion.
  • display_name et icon_url affectent uniquement la façon dont la Connexion s’affiche dans l’expérience Universal Login.

Transmettre des paramètres spécifiques au fournisseur

Vous pouvez transmettre des paramètres spécifiques au fournisseur au point de terminaison d’autorisation des fournisseurs OAuth 2.0. Ils peuvent être statiques ou dynamiques.

Transmettre des paramètres statiques

Pour transmettre des paramètres statiques (des paramètres envoyés avec chaque requête d’autorisation), vous pouvez utiliser l’élément authParams dans options lors de la configuration d’une connexion OAuth 2.0 au moyen de la Management API. L’appel ci-dessous définira le paramètre statique custom_param à custom.param.value pour toutes les requêtes d’autorisation :

Passer des paramètres dyniques

Dans certaines situations, vous pouvez vouloir transmettre une valeur dynamique à un fournisseur d’identité OAuth 2.0. Dans ce cas, vous pouvez utiliser l’élément authParamsMap de options pour définir une correspondance entre l’un des paramètres supplémentaires existants acceptés par le point de terminaison Auth0 /authorize et le paramètre accepté par le fournisseur d’identité. En reprenant l’exemple ci-dessus, supposons que vous vouliez transmettre le paramètre custom_param au point de terminaison d’autorisation, mais que vous souhaitiez en définir la valeur réelle au moment d’appeler le point de terminaison Auth0 /authorize. Dans ce cas, vous pouvez utiliser l’un des paramètres supplémentaires existants acceptés par le point de terminaison /authorize, comme access_type, et le mapper au paramètre custom_param : Désormais, lorsque vous appelez le point de terminaison /authorize, vous pouvez transmettre le type d’accès dans le paramètre access_type, et cette valeur sera ensuite transmise au point de terminaison d’autorisation dans le paramètre custom_param.

Transmettre des en-têtes supplémentaires

Dans certains cas, vous devrez transmettre des en-têtes supplémentaires au d’un fournisseur OAuth 2.0. Pour configurer des en-têtes supplémentaires, ouvrez les paramètres de la Connexion, puis, dans le champ Custom Headers, indiquez un objet JSON contenant les en-têtes personnalisés sous forme de paires clé-valeur :
{
    "Header1" : "Value",
    "Header2" : "Value"
}
Prenons l’exemple d’un fournisseur d’identité qui peut exiger que vous transmettiez un en-tête Authorization avec des identifiants d’authentification Basic. Dans ce scénario, vous pouvez spécifier l’objet JSON suivant dans le champ Custom Headers :
{
  "Authorization": "Basic [your credentials]"
}
[your credentials] désigne les véritables identifiants à envoyer au fournisseur d’identité.

En savoir plus