Vue d’ensemble des extensions d’authentification personnalisées

Cet article fournit une vue d’ensemble technique générale d’extensions d’authentification personnalisées pour Microsoft Entra ID. Les extensions d'authentification personnalisées vous permettent de personnaliser l'expérience d'authentification Microsoft Entra en l'intégrant à des systèmes externes.

Le diagramme suivant illustre le flux de connexion intégré à une extension d’authentification personnalisée.

Diagramme montrant un jeton en cours d’augmentation avec des revendications provenant d’une source externe.

  1. Un utilisateur tente de se connecter à une application et est redirigé vers la page de connexion Microsoft Entra.
  2. Une fois qu’un utilisateur a effectué une certaine étape de l’authentification, un écouteur d’événement est déclenché.
  3. Votre extension d'authentification personnalisée envoie une requête HTTP à votre point de terminaison d'API REST. La demande contient des informations sur l’événement, le profil utilisateur, les données de session et d’autres informations de contexte.
  4. L’API REST effectue un workflow personnalisé.
  5. L’API REST retourne à Microsoft Entra ID une réponse HTTP.
  6. L’extension d’authentification personnalisée Microsoft Entra traite la réponse et personnalise l’authentification en fonction du type d’événement et de la charge utile de réponse HTTP.
  7. Un jeton est retourné à l’application.

Point de terminaison de l’API REST - Extension d’authentification personnalisée

Lorsqu'un événement se déclenche, Microsoft Entra ID appelle un point de terminaison d'API REST que vous possédez. 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.

Vous pouvez utiliser n’importe quel langage de programmation, infrastructure et environnement d’hébergement pour créer et héberger l’API REST de vos extensions d’authentification personnalisées. Pour commencer rapidement, utilisez une fonction Azure C#. Azure Functions vous permet d’exécuter votre code dans un environnement serverless, et sans avoir à créer une machine virtuelle ou à publier une application web au préalable.

Votre API REST doit gérer :

  • Validation de jeton pour la sécurisation des appels d’API REST.
  • Logique métier
  • Validation entrante et sortante des schémas de requête et de réponse HTTP.
  • Audit et journalisation.
  • Contrôles de disponibilité, de performances et de sécurité.

Pour les développeurs exécutant l’API REST sur Azure Functions, utilisez la bibliothèque NuGet Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents, qui permet d’implémenter la validation des jetons avec les fonctionnalités d’authentification intégrées de Microsoft Azure. Elle fournit un modèle de données pour différents types d’événement, lance le traitement des demandes entrantes et sortantes et des réponses, pour vous permettre de vous concentrer sur la logique métier.

Protéger votre API REST

Pour garantir que les communications entre l’extension d’authentification personnalisée et votre API REST sont correctement sécurisées, plusieurs contrôles de sécurité doivent être appliqués.

  1. Lorsque l’extension d’authentification personnalisée appelle votre API REST, elle envoie un en-tête HTTP Authorization avec un jeton du porteur émis par Microsoft Entra ID.
  2. Le jeton du porteur contient une revendication appid ou azp. Vérifiez que la revendication respective contient la valeur 99045fe1-7639-4a75-9d4a-577b6ca3810f. Cette valeur garantit que c’est Microsoft Entra ID qui appelle l’API REST.
    1. Pour les applications V1, validez la revendication appid.
    2. Pour les applications V2, validez la revendication azp.
  3. La revendication d’audience du jeton du porteur aud contient l’ID de l’inscription de l’application associée. Votre point de terminaison d’API REST doit vérifier que le jeton du porteur est émis pour ce public spécifique.
  4. La revendication de l’émetteur iss du jeton du porteur contient l’URL de l’émetteur Microsoft Entra. Selon la configuration de votre locataire, l’URL de l’émetteur sera l’une des suivantes ;
    • Main-d’œuvre : https://login.microsoftonline.com/{tenantId}/v2.0.
    • Client : https://{domainName}.ciamlogin.com/{tenantId}/v2.0.

Fournisseur de revendications personnalisé

Un fournisseur de revendications personnalisé est un type d’extension d’authentification personnalisée qui appelle une API REST pour extraire des revendications à partir de systèmes externes. Un fournisseur de revendications personnalisé mappe les revendications à partir de systèmes externes en jetons et peut être affecté à une ou plusieurs applications de votre annuaire.

En savoir plus sur les fournisseurs de revendications personnalisés.

Démarrage de la collection d'attributs et événements de soumission

Les événements de démarrage et de soumission de la collection d'attributs peuvent être utilisés avec des extensions d'authentification personnalisées pour ajouter une logique avant et après la collecte des attributs auprès d'un utilisateur. Par exemple, vous pouvez ajouter un flux de travail pour valider les attributs qu'un utilisateur saisit lors de son inscription. L'événement OnAttributeCollectionStart se produit au début de l'étape de collecte d'attributs, avant le rendu de la page de collecte d'attributs. Il vous permet d'ajouter des actions telles que le pré-remplir des valeurs et l'affichage d'une erreur bloquante. L'événement OnAttributeCollectionSubmit se déclenche une fois que l'utilisateur a saisi et soumis des attributs, vous permettant d'ajouter des actions telles que la validation d'entrées ou la modification d'attributs.

Remarque

Les événements de démarrage et de soumission de la collection d’attributs sont actuellement disponibles uniquement pour les flux d’utilisateurs dans Microsoft Entra External ID pour les clients. Pour plus de détails, consultez Ajouter votre propre logique métier.

Voir aussi