Valider les attributs collectés lors de l’inscription

Effectué

Exercice - Valider les attributs collectés lors de l’inscription

L’extension d’authentification personnalisée prend en charge l’événement on attribute collection submit. Cet événement vous permet d’effectuer une validation des attributs collectés auprès de l’utilisateur lors de l’inscription. Pour notre site web d’épicerie, nous allons valider le nom City par rapport à une liste de pays compilés dans l’API REST de l’extension d’authentification personnalisée. De plus, si la ville contient rue, l’ID externe Microsoft Entra affiche une page de rues. Si la ville contient modifier, l’ID externe Microsoft Entra modifie certains des attributs (nom complet et ville).

Remarque

Vous aurez besoin au moins du rôle d’annuaire Administrateur d’extensibilité d’authentification pour configurer la validation des attributs collectés lors de l’inscription.

Ce rôle est un rôle privilégié. Veuillez lire les meilleures pratiques concernant l’utilisation des rôles privilégiés.

Vous avez des commentaires ? Faites-nous savoir comment se déroule votre projet de preuve de concept. Nous aimerions connaître votre opinion.

Conseil

Vous pouvez également afficher un exemple d’API web C# .NET qui montre comment utiliser l’extension d’authentification personnalisée de l’ID externe Microsoft Entra pour différents événements ici.

  1. Commencez par inscrire une extension d’authentification personnalisée utilisée par l’ID externe Microsoft Entra pour appeler votre API REST. L’extension d’authentification personnalisée contient des informations sur le point de terminaison de votre API REST, l’action de démarrage de la collecte d’attributs qu’elle analyse à partir de votre API REST et le mode d’authentification auprès de votre API REST. Connectez-vous au centre d’administration Microsoft Entra et accédez à Identités externes>Extensions d’authentification personnalisées. Notez que vous pouvez également accéder à Applications>Applications d’entreprise>Extensions d’authentification personnalisées. Ensuite, sélectionnez Créer une extension personnalisée.

    Capture d’écran du panneau Extensions d’authentification personnalisées dans Identités externes mettant en évidence un bouton dans la barre d’outils intitulé Créer une extension personnalisée.

  2. Dans Informations de base, sélectionnez l’événement AttributeCollectionSubmit, puis Suivant.

    Capture d’écran de l’onglet Informations de base du panneau Créer une extension personnalisée avec mise en évidence du type d’événement intitulé Attribute Collection Submit.

  3. Dans Configuration du point de terminaison, renseignez les propriétés suivantes :

    • Nom : nom de votre extension d’authentification personnalisée, par exemple Valider les entrées utilisateur d’inscription.

    • URL cible : URL de votre API REST.

    • Délai d’expiration en millisecondes : nombre maximal des nouvelles tentatives d’appel du point de terminaison de l’API en cas d’échec. Si elle est vide, cette valeur est définie par défaut sur le service par défaut.

    • Nombre maximal de nouvelles tentatives : nombre maximal des nouvelles tentatives d’appel du point de terminaison de l’API en cas d’échec. Si elle est vide, cette valeur est définie par défaut sur le service par défaut.

    • Description : description de vos extensions d’authentification personnalisées. Pour continuer, sélectionnez suivant.

      Capture d’écran de l’onglet Configuration des points de terminaison du panneau Créer une extension personnalisée montrant les champs Nom, URL cible, Délai d’expiration en millisecondes, Nombre maximal de nouvelles tentatives et Description.

  4. Pour vous assurer que la communication entre l’extension d’authentification personnalisée et votre API REST est sécurisée correctement, plusieurs contrôles de sécurité doivent être appliqués. La première étape consiste à créer ou à choisir une application utilisée par l’ID externe Microsoft Entra. Il utilise le flux d’octroi des informations d’identification du client OAuth 2.0 pour sécuriser l’appel vers votre point de terminaison d’API.

    S’il s’agit de votre première extension d’authentification personnalisée, découvrez comment nous avons configuré notre événement TokenIssuanceStart. Étant donné que nous avons déjà configuré une extension d’authentification personnalisée, dans Authentification d’API, choisissez l’option Sélectionner une inscription d’application existante dans cet annuaire.

    Capture d’écran de l’onglet Authentification d’API du panneau Créer une extension personnalisée mettant en évidence la case d’option intitulée Sélectionner une inscription d’application existante dans cet annuaire et Sélectionner une application sous Type d’inscription d’application.

  5. Sélectionnez l’application que vous avez configurée pour les autres extensions d’authentification personnalisées, puis choisissez Sélectionner.

    Capture d’écran du volet Sélectionner une application ouvert à droite qui met en évidence une application intitulée Application de sécurité de l’extension d’authentification personnalisée cochée.

  6. Passez en revue votre configuration et sélectionnez Créer, qui inscrit l’extension d’authentification personnalisée que vous avez configurée et l’inscription d’application associée que vous avez sélectionnée.

    Capture d’écran de l’onglet Révision du panneau Créer une extension personnalisée montrant les configurations Configuration des points de terminaison et Authentification d’API.

  7. À ce stade, l’extension d’authentification personnalisée est configurée dans votre locataire, mais elle n’est pas utilisée dans les pages d’inscription. Ensuite, vous allez associer l’extension d’authentification personnalisée à un ou plusieurs de vos flux d’utilisateurs. Pour ce faire, accédez à Identité>Identités externes>Flux d’utilisateurs. Sélectionnez ensuite le flux d’utilisateur dans la liste.

    Capture d’écran du panneau Flux d’utilisateurs dans Identités externes mettant en évidence un flux d’utilisateur intitulé Par défaut dans la liste de grilles des flux d’utilisateurs.

  8. Dans le menu, sélectionnez Extensions d’authentification personnalisées. Pour associer votre extension d’authentification personnalisée, sélectionnez l’événement Avant de collecter des informations auprès de l’utilisateur.

    Capture d’écran du panneau Extensions d’authentification personnalisées pour le flux d’utilisateur intitulé Valeur par défaut qui met en évidence le bouton Modifier à côté de Quand un utilisateur envoie ses informations.

  9. Les extensions personnalisées configurées pour l’événement OnAttributeCollectionStart apparaissent. Sélectionnez l’une d’entre elles pour l’événement de démarrage de la collecte d’attributs, puis choisissez Sélectionner pour enregistrer les modifications.

    Capture d’écran du volet Extensions personnalisées ouvert à droite avec Valider les entrées utilisateur d’inscription et son URL mise en évidence dans le menu déroulant pour Sélectionner une extension personnalisée.

Bravo ! Vous avez créé une extension d’authentification personnalisée de type OnAttributeCollectionSubmit, puis l’avez associée à votre flux d’utilisateur.

1. Inscrire une application d’extension d’authentification personnalisée

S’il s’agit de votre première extension d’authentification personnalisée, inscrivez l’application d’extension d’authentification personnalisée.

2. Inscrire une extension d’authentification personnalisée

Ensuite, inscrivez l’extension d’authentification personnalisée. Vous inscrivez l’extension d’authentification personnalisée en l’associant à l’application de sécurité de l’extension d’authentification personnalisée que vous avez créée et au point de terminaison de votre API REST. Remplacez les valeurs suivantes par les vôtres : - {app-ID} par l’ID d’application de l’appel précédent Application de sécurité de l’extension d’authentification personnalisée. - {REST-API-domain} par le nom de domaine de votre API REST - {Endpoint-URL} - par la RUL du point de terminaison de votre API REST

POST https://graph.microsoft.com/beta/identity/customAuthenticationExtensions
{
    "@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtension",
    "displayName": "Validate sign-up user input",
    "description": "Validate user input including the city name and may ask the user to correct the data or block the user",
    "behaviorOnError": null,
    "authenticationConfiguration": {
        "@odata.type": "#microsoft.graph.azureAdTokenAuthentication",
        "resourceId": "api://{REST-API-domain}/{app-ID}"
    },
    "endpointConfiguration": {
        "@odata.type": "#microsoft.graph.httpRequestEndpoint",
        "targetUrl": "{Endpoint-URL}"
    },
    "clientConfiguration": {
        "timeoutInMilliseconds": null,
        "maximumRetries": null
    }
}
Exemple
POST https://graph.microsoft.com/beta/identity/customAuthenticationExtensions
{
    "@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtension",
    "displayName": "Validate sign-up user input",
    "description": "Validate user input including the city name and may ask the user to correct the data or block the user",
    "behaviorOnError": null,
    "authenticationConfiguration": {
        "@odata.type": "#microsoft.graph.azureAdTokenAuthentication",
        "resourceId": "api://auth-api.woodgrovedemo.com/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
    },
    "endpointConfiguration": {
        "@odata.type": "#microsoft.graph.httpRequestEndpoint",
        "targetUrl": "https://auth-api.woodgrovedemo.com/OnAttributeCollectionSubmit"
    },
    "clientConfiguration": {
        "timeoutInMilliseconds": null,
        "maximumRetries": null
    }
}
2.1 Copier l’ID de l’extension d’authentification personnalisée

À partir de la réponse, copiez la valeur de l’ID. Par exemple :

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/customAuthenticationExtensions/$entity",
    "@odata.type": "#microsoft.graph.onAttributeCollectionStartCustomExtension",
    "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    "displayName": "Prepopulate sign-up attributes",
    "description": "Prepopulate sign-up attributes from a REST API",
}
2.2 Créer un écouteur d’événements d’authentification

Une fois que vous avez inscrit votre extension d’authentification personnalisée, créez un écouteur d’événements d’authentification. Dans le code JSON suivant, remplacez {Custom-auth-extension-ID} par l’extension d’authentification personnalisée que vous venez de créer.

POST https://graph.microsoft.com/beta/identity/authenticationEventListeners
{
    "@odata.type": "#microsoft.graph.onAttributeCollectionSubmitListener",
    "conditions": {
        "applications": {
            "includeAllApplications": false,
            "includeApplications": []
        }
    },
    "priority": 500,
    "handler": {
        "@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler",
        "customExtension": {
            "id": "{Custom-auth-extension-ID}"
        }
    }
}
Exemple
POST https://graph.microsoft.com/beta/identity/authenticationEventListeners
{
    "@odata.type": "#microsoft.graph.onAttributeCollectionSubmitListener",
    "conditions": {
        "applications": {
            "includeAllApplications": false,
            "includeApplications": []
        }
    },
    "priority": 500,
    "handler": {
        "@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler",
        "customExtension": {
            "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
        }
    }
}

Mettez à jour votre flux d’utilisateur. Dans la requête suivante, remplacez les valeurs suivantes par vos propres valeurs : - {user-flow-ID} par votre ID de flux d’utilisateur. - {Custom-auth-extension-ID} par l’extension d’authentification personnalisée que vous venez de créer.

PUT https://graph.microsoft.com/beta/identity/authenticationEventsFlows/{user-flow-ID}/microsoft.graph.externalUsersSelfServiceSignUpEventsFlow/onAttributeCollectionSubmit/microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler/customExtension/$ref
{
    "@odata.id": "https://graph.microsoft.com/beta/identity/customAuthenticationExtensions/{Custom-auth-extension-ID}"
}
Exemple
PUT https://graph.microsoft.com/beta//identity/authenticationEventsFlows/bbbbbbbb-1111-2222-3333-cccccccccccc/microsoft.graph.externalUsersSelfServiceSignUpEventsFlow/onAttributeCollectionSubmit/microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler/customExtension/$ref
{
    "@odata.id": "https://graph.microsoft.com/beta/identity/customAuthenticationExtensions/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
}