Valider les attributs collectés lors de l’inscription
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.
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.
Dans Informations de base, sélectionnez l’événement AttributeCollectionSubmit, puis Suivant.
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.
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.
Sélectionnez l’application que vous avez configurée pour les autres extensions d’authentification personnalisées, puis choisissez Sélectionner.
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.
À 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.
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.
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.
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"
}
}
}
2.3 Lier l’extension d’authentification personnalisée à un flux d’utilisateur
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"
}