Überprüfen von Attributen, die während der Registrierung gesammelt wurden
Übung: Überprüfen von Attributen, die während der Registrierung gesammelt wurden
Die benutzerdefinierte Authentifizierungserweiterung unterstützt das Ereignis on attribute collection submit. Mit diesem Ereignis können Sie während der Registrierung eine Überprüfung der vom Benutzer gesammelten Attribute durchführen. Für unsere Lebensmittelwebsite überprüfen wir den Namen von Ort anhand einer Liste der Länder, die in der REST-API für die benutzerdefinierte Authentifizierungserweiterung kompiliert sind. Wenn der Ort die Zeichenfolge block enthält, wird von Microsoft Entra External ID eine Blockierungsseite angezeigt. Wenn der Ort modify enthält, ändert Microsoft Entra External ID einige Attribute (Anzeigename und Ort).
Hinweis
Sie benötigen mindestens die Verzeichnisrolle Administrator für Authentifizierungserweiterung, um Attribute zu konfigurieren, die während der Registrierung erfasst werden.
Diese Rolle ist eine privilegierte Rolle. Lesen Sie die bewährten Methoden für die Verwendung privilegierter Rollen.
Haben Sie Feedback? Teilen Sie uns mit, wie Ihr Proof of Concept-Projekt läuft. Wir würden uns freuen, von Ihnen zu hören!
Tipp
Hier können Sie auch ein Beispiel für eine .NET-C#-Web-API anzeigen, die veranschaulicht, wie Sie die benutzerdefinierte Authentifizierungserweiterung von Microsoft Entra External ID für verschiedene Ereignisse verwenden.
Registrieren Sie zunächst eine benutzerdefinierte Authentifizierungserweiterung, die von Microsoft Entra External ID zum Aufrufen Ihrer REST-API verwendet wird. Die benutzerdefinierte Authentifizierungserweiterung enthält Informationen zu Ihrem REST-API-Endpunkt, zur Aktion zum Starten der Attributsammlung, die sie über Ihre REST-API parst, und zur Authentifizierung bei Ihrer REST-API. Melden Sie sich beim Microsoft Entra Admin Center an, und navigieren Sie zu External Identities>Benutzerdefinierte Authentifizierungserweiterungen. Hinweis: Sie können auch zu Anwendungen>Unternehmensanwendungen>Benutzerdefinierte Authentifizierungserweiterungen navigieren. Wählen Sie dann Benutzerdefinierte Erweiterung erstellen aus.
Wählen Sie unter Allgemeine Informationen das AttributeCollectionSubmit-Ereignis und dann Weiter aus.
Füllen Sie unter Endpunktkonfiguration die folgenden Eigenschaften aus:
Name: Ein Name für Ihre benutzerdefinierte Authentifizierungserweiterung, z. B. Überprüfen der Benutzereingabe für die Registrierung.
Ziel-URL: Die URL Ihrer REST-API.
Timeout in Millisekunden: Die maximale Anzahl von Wiederholungen, die für den API-Endpunkt bei einem Fehler ausgeführt werden. Wenn dieser Wert leer ist, wird standardmäßig die Standardeinstellung für den Dienst verwendet.
Maximale Anzahl von Wiederholungen: Die maximale Anzahl von Wiederholungen, die für den API-Endpunkt bei einem Fehler ausgeführt werden. Wenn dieser Wert leer ist, wird standardmäßig die Standardeinstellung für den Dienst verwendet.
Beschreibung – Eine Beschreibung für Ihre benutzerdefinierten Authentifizierungserweiterungen. Wählen Sie zum Fortsetzen des Vorgangs Weiter aus.
Um sicherzustellen, dass die Kommunikation zwischen der benutzerdefinierten Authentifizierungserweiterung und der REST-API angemessen geschützt ist, müssen mehrere Sicherheitskontrollen angewendet werden. Der erste Schritt besteht darin, eine Anwendung zu erstellen oder auszuwählen, die von Microsoft Entra External ID verwendet wird. Es wird der Gewährungsflow für OAuth 2.0-Clientanmeldeinformationen verwendet, um den Aufruf des API-Endpunkts zu schützen.
Wenn dies Ihre erste benutzerdefinierte Authentifizierungserweiterung ist, sehen Sie sich an, wie wir unser TokenIssuanceStart-Ereignis konfiguriert haben. Da wir bereits eine benutzerdefinierte Authentifizierungserweiterung konfiguriert haben, wählen Sie unter API-Authentifizierung die Option Auswählen einer vorhandenen App-Registrierung in diesem Verzeichnis aus.
Wählen Sie die Anwendung aus, die Sie für die anderen benutzerdefinierten Authentifizierungserweiterungen konfiguriert haben, und wählen Sie Auswählen aus.
Überprüfen Sie Ihre Konfiguration, und wählen Sie Erstellen aus. Dadurch werden die von Ihnen konfigurierte benutzerdefinierte Authentifizierungserweiterung und die von Ihnen ausgewählte zugeordnete Anwendungsregistrierung registriert.
Zu diesem Zeitpunkt ist die benutzerdefinierte Authentifizierungserweiterung in Ihrem Mandanten konfiguriert, wird aber auf keiner Registrierungsseite verwendet. Als Nächstes ordnen Sie die benutzerdefinierte Authentifizierungserweiterung mindestens einem Benutzerflow zu. Navigieren Sie dazu zu Identität>External Identities>Benutzerflows. Wählen Sie dann in der Liste den Benutzerflow aus.
Wählen Sie im Menü Benutzerdefinierte Authentifizierungserweiterungen aus. Um Ihre benutzerdefinierte Authentifizierungserweiterung zuzuordnen, wählen Sie das Ereignis Before collecting information from the user aus.
Die für das Ereignis OnAttributeCollectionStart konfigurierten benutzerdefinierten Erweiterungen werden angezeigt. Wählen Sie eine für das Ereignis „attribute collection start“ und dann Auswählen aus, um die Änderungen zu speichern.
Gut gemacht. Sie haben eine benutzerdefinierte Authentifizierungserweiterung vom Typ OnAttributeCollectionSubmit erstellt und dann dem Benutzerflow zugeordnet.
1. Registrieren einer Anwendung für benutzerdefinierte Authentifizierungserweiterungen
Wenn dies Ihre erste benutzerdefinierte Authentifizierungserweiterung ist, registrieren Sie die Anwendung für benutzerdefinierte Authentifizierungserweiterungen.
2. Registrieren einer benutzerdefinierten Authentifizierungserweiterung
Als Nächstes registrieren Sie die benutzerdefinierte Authentifizierungserweiterung. Sie registrieren die benutzerdefinierte Authentifizierungserweiterung, indem Sie sie der von Ihnen erstellten Sicherheits-App für benutzerdefinierte Authentifizierungserweiterungen und Ihrem REST-API-Endpunkt zuordnen. Ersetzen Sie die folgenden Werte durch Ihre eigenen: {app-ID} durch die App-ID aus dem vorherigen Aufruf von Sicherheits-App für benutzerdefinierte Authentifizierungserweiterungen. - {REST-API-domain} durch den REST-API-Domänennamen und {Endpoint-URL} durch die URL Ihres REST-API-Endpunkts
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
}
}
Beispiel
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 Kopieren der ID der benutzerdefinierten Authentifizierungserweiterung
Kopieren Sie den Wert von id aus der Antwort. Beispiel:
{
"@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 Erstellen eines Ereignislisteners für die Authentifizierung
Nachdem Sie Ihre benutzerdefinierte Authentifizierungserweiterung registriert haben, erstellen Sie einen Authentifizierungsereignislistener. Ersetzen Sie im nächsten JSON-Codeabschnitt {Custom-auth-extension-ID} durch die soeben erstellte benutzerdefinierte Authentifizierungserweiterung.
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}"
}
}
}
Beispiel
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 Verknüpfen der benutzerdefinierten Authentifizierungserweiterung mit einem Benutzerflow
Aktualisieren Sie Ihren Benutzerflow. Ersetzen Sie in der folgenden Anforderung die Werte durch Ihre eigenen: {user-flow-ID} durch die Benutzerflow-ID. - {Custom-auth-extension-ID} durch die soeben erstellte benutzerdefinierte Authentifizierungserweiterung.
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}"
}
Beispiel
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"
}