Überprüfen von Attributen, die während der Registrierung gesammelt wurden

Abgeschlossen

Ü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.

  1. 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.

    Screenshot: Blatt „Benutzerdefinierte Authentifizierungserweiterungen“ unter „External Identities“ mit hervorgehobener Schaltfläche „Benutzerdefinierte Erweiterung erstellen“ auf der Symbolleiste

  2. Wählen Sie unter Allgemeine Informationen das AttributeCollectionSubmit-Ereignis und dann Weiter aus.

    Screenshot: Registerkarte „Allgemeine Informationen“ des Blatts „Neue benutzerdefinierte Erweiterung erstellen“ mit hervorgehobenem Ereignistyp „AttributeCollectionSubmit“

  3. 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.

      Screenshot: Registerkarte „Endpunktkonfiguration“ des Blatts „Neue benutzerdefinierte Erweiterung erstellen“ mit den Feldern „Name“, „Ziel-URL“, „Timeout in Millisekunden“, „Maximale Anzahl von Wiederholungen“ und „Beschreibung“.

  4. 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.

    Screenshot: Registerkarte „API-Authentifizierung“ des Blatts „Neue benutzerdefinierte Erweiterung erstellen“, auf dem das Optionsfeld „Auswählen einer vorhandenen App-Registrierung in diesem Verzeichnis“ und die Option „Anwendung auswählen“ unter dem App-Registrierungstyp hervorgehoben sind.

  5. Wählen Sie die Anwendung aus, die Sie für die anderen benutzerdefinierten Authentifizierungserweiterungen konfiguriert haben, und wählen Sie Auswählen aus.

    Screenshot: Auf der rechten Seite geöffneter Bereichs „Anwendung auswählen“ mit hervorgehobener ausgewählter Anwendung „Sicherheits-App für benutzerdefinierte Authentifizierungserweiterungen“

  6. Ü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.

    Screenshot: Registerkarte „Überprüfen“ des Blatts „Neue benutzerdefinierte Erweiterung erstellen“ mit Endpunktkonfiguration und API-Authentifizierungskonfigurationen

  7. 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.

    Screenshot: Blatt „External Identities | Benutzerflows“ mit hervorgehobenem Benutzerflow „Standard“ in der Liste der Benutzerflows

  8. 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.

    Screenshot: Blatt „Benutzerdefinierte Authentifizierungserweiterungen“ für den Benutzerflow „Standard“ mit hervorgehobener Schaltfläche „Bearbeiten“ neben „Wenn ein Benutzer seine Informationen übermittelt“

  9. 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.

    Screenshot: Auf der rechten Seite geöffneter Bereich „Benutzerdefinierte Erweiterungen“ mit hervorgehobener Erweiterung „Überprüfen der Benutzereingabe für die Registrierung“ und URL im Dropdownmenü für „Benutzerdefinierte Erweiterung auswählen“

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"
        }
    }
}

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"
}