Étendre des flux d’authentification avec votre propre logique métier
S’applique à : Locataires de main-d’œuvre Locataires externes (en savoir plus)
Les flux d’utilisateurs de la solution ID externe Microsoft Entra sont conçus dans un souci de flexibilité. Il existe des événements d’authentification intégrés dans un flux d’utilisateurs d’inscription et de connexion. Vous pouvez également ajouter des extensions d’authentification personnalisées à des points spécifiques du flux d’authentification. Une extension d’authentification personnalisée est essentiellement un détecteur d’événements qui, une fois activé, effectue un appel HTTP à un point de terminaison d’API REST, où vous définissez une action de workflow. Par exemple, vous pouvez ajouter un workflow de collection d’attributs pour valider les attributs qu’un utilisateur entre durant l’inscription, ou vous pouvez utiliser un fournisseur de revendications personnalisées pour ajouter des données utilisateur externes au jeton avant son émission.
Vous devez configurer deux composants : une extension d’authentification personnalisée et une API REST. L’extension d’authentification personnalisée spécifie votre point de terminaison d’API REST, le moment auquel l’API REST doit être appelée et les informations d’identification utilisées pour appeler l’API REST. Vous pouvez créer des extensions d’authentification personnalisées aux points suivants dans le flux d’authentification :
- Lors de l’inscription, avant ou après la collection d’attributs :
- L’événement OnAttributeCollectionStart se produit au début de l’étape de collecte d’attributs, avant le rendu de la page de collection d’attributs.
- L’événement OnAttributeCollectionSubmit se produit après que l’utilisateur entre et envoie des attributs.
- Lors de l’émission de jeton à l’aide de l’événement OnTokenIssuanceStart, qui se déclenche juste avant qu’un jeton soit émis à l’application.
Si vous disposez d’une extension d’authentification personnalisée configurée à l’un de ces points, Microsoft Entra ID effectue un appel à l’API REST que vous définissez. La requête à l’API REST contient des informations sur l’événement, le profil utilisateur, les données de demande d’authentification et d’autres informations de contexte. À son tour, l’API REST effectue les actions de flux de travail.
Cet article fournit une vue d’ensemble des extensions d’authentification personnalisées dans ID externe Microsoft Entra.
Événements de démarrage et d’envoi d’une collection d’attributs
Vous pouvez utiliser des extensions d’authentification personnalisées pour ajouter des flux de travail à une collection d’attributs dans vos flux d’utilisateur d’inscription en libre-service. Par exemple, vous pouvez préremplir des champs d’attribut avec des valeurs personnalisées, valider les entrées d’un utilisateur, modifier des attributs et afficher les erreurs. Deux événements sont activés :
OnAttributeCollectionStart : l’événement OnAttributeCollectionStart se produit au début du processus de collecte d’attributs, avant le rendu de la page de collection d’attributs. Cet événement peut être utilisé pour des scénarios tels qu’empêcher l’utilisateur de s’inscrire en fonction de son domaine ou qu’ajouter des attributs à collecter. Les scénarios suivants sont configurables pour l’événement OnAttributeCollectionStart :
- continueWithDefaultBehavior : rendre la page de collection d’attributs comme d’habitude.
- setPreFillValues : préremplir les attributs dans le formulaire d’inscription.
- showBlockPage : afficher un message d’erreur et empêcher l’utilisateur de s’inscrire.
OnAttributeCollectionSubmit : l’événement OnAttributeCollectionSubmit se produit après que l’utilisateur entre et envoie des attributs. Cet événement peut être utilisé pour des scénarios tels que la validation ou la modification des informations fournies par l’utilisateur. Par exemple, vous pouvez valider un code d’invitation ou un numéro de partenaire, modifier un format d’adresse ou renvoyer une erreur.
- continueWithDefaultBehavior : continuer avec le flux d’inscription.
- modifyAttributeValues : remplacer les valeurs envoyées par l’utilisateur dans le formulaire d’inscription.
- showValidationError : retourner une erreur en fonction des valeurs envoyées.
- showBlockPage : afficher un message d’erreur et empêcher l’utilisateur de s’inscrire.
Pour configurer les événements de démarrage et d’envoi d’une collection d’attributs, vous créez une API REST d’extension d’authentification personnalisée. Quand un événement se déclenche, Microsoft Entra ID envoie une requête HTTP à votre point de terminaison d’API REST. L’API REST peut être une fonction Azure, une application logique Azure ou un autre point de terminaison d’API disponible publiquement. Votre point de terminaison d’API REST est chargé de définir les actions de flux de travail à entreprendre.
Pour plus d’informations, consultez l’article Ajouter des extensions personnalisées de collection d’attributs à votre flux d’utilisateur.
Événement de démarrage d’émission de jetons
L’événement de début d’émission de jeton est déclenché une fois qu’un utilisateur a effectué toutes ses demandes d’authentification et qu’un jeton de sécurité est sur le point d’être émis.
Lorsque des utilisateurs s’authentifient auprès de votre application avec Microsoft Entra ID, un jeton de sécurité est retourné à votre application. Le jeton de sécurité contient des revendications qui sont des instructions relatives à l’utilisateur, telles que le nom, l’identificateur unique ou les rôles d’application. Au-delà de l’ensemble par défaut de revendications contenues dans le jeton de sécurité, vous pouvez définir vos propres revendications personnalisées à partir de systèmes externes à l’aide d’une API REST que vous développez.
Dans certains cas, des données clés peuvent être stockées dans des systèmes externes à Microsoft Entra, tels qu’un e-mail secondaire, un niveau de facturation ou des informations sensibles. Il n’est pas toujours possible de stocker les informations du système externe dans l’annuaire Microsoft Entra. Pour ces scénarios, vous pouvez utiliser une extension d’authentification personnalisée et un fournisseur de revendications personnalisé afin d’ajouter ces données externes aux jetons retournés à votre application.
Une extension d’événement d’émission de jeton implique les composants suivants :
Fournisseur de revendications personnalisé. Un fournisseur de revendications personnalisé est un type d’extension d’authentification personnalisée qui extrait des données dans des systèmes externes. Le fournisseur de revendications personnalisé spécifie les attributs à ajouter au jeton de sécurité qui est retourné par votre application. Plusieurs fournisseurs de revendications peuvent partager la même extension personnalisée, de sorte qu’un ensemble différent d’attributs peut être ajouté au jeton de sécurité pour chaque application.
Point de terminaison d’API REST. Quand un événement se déclenche, Microsoft Entra ID envoie une requête HTTP à votre point de terminaison d’API REST. L’API REST peut être une fonction Azure, une application logique Azure ou un autre point de terminaison d’API disponible publiquement. Votre point de terminaison d’API REST sert d’interface avec divers magasins de données, notamment les bases de données en aval, les API existantes, les annuaires LDAP (Lightweight Directory Access Protocol), ou d’autres magasins qui contiennent les attributs à ajouter à la configuration du jeton.
L’API REST retourne à Microsoft Entra ID une réponse HTTP ou une action contenant les attributs. Ces attributs ne sont pas automatiquement ajoutés à un jeton. En lieu et place, la stratégie de mappage des revendications d’une application doit être configurée pour que les attributs soient inclus dans le jeton.
Pour plus d’informations, consultez :
- À propos des extensions d’authentification personnalisées.
- Configurer un fournisseur de revendications personnalisées pour un événement d’émission de jetons à l’aide d’un fournisseur de revendications personnalisées.
Voir aussi
- Pour en savoir plus sur le fonctionnement des extensions personnalisées, consultez Extensions d’authentification personnalisées.
- Créer une API REST avec un événement de démarrage d’émission de jeton.
- Configurer un fournisseur de revendications personnalisé pour un événement d’émission de jeton.
- Configurer des extensions d’authentification personnalisées pour les événements de démarrage et d’envoi d’une collection d’attributs avec un exemple d’application OpenID Connect.
- Pour obtenir les derniers contenus et ressources destinés aux développeurs, consultez le Centre de développement Microsoft Entra ID.