Freigeben über


Übersicht über benutzerdefinierte Authentifizierungserweiterungen

Die Microsoft Entra ID-Authentifizierungspipeline besteht aus mehreren integrierten Authentifizierungsereignissen, z. B. der Überprüfung von Benutzeranmeldeinformationen, Richtlinien für bedingten Zugriff, mehrstufige Authentifizierung, Self-Service-Kennwortzurücksetzung und mehr.

Mit benutzerdefinierten Microsoft Entra-Authentifizierungserweiterungen können Sie Authentifizierungsflüsse an bestimmten Stellen innerhalb des Authentifizierungsflusses mit Ihrer eigenen Geschäftslogik erweitern. Eine benutzerdefinierte Authentifizierungserweiterung ist im Wesentlichen ein Ereignis-Listener, der bei Aktivierung einen HTTP-Aufruf an einen REST-API-Endpunkt ausführt, an dem Sie eine Workflowaktion definiert haben.

Sie können z. B. einen benutzerdefinierten Anspruchsanbieter verwenden, um dem Sicherheitstoken externe Benutzerdaten hinzuzufügen, bevor das Token ausgestellt wird. Sie können einen Attributauflistungsworkflow hinzufügen, um die Attribute zu überprüfen, die ein Benutzer während der Registrierung eingibt. Dieser Artikel enthält eine allgemeine technische Übersicht über benutzerdefinierte Authentifizierungserweiterungen von Microsoft Entra ID.

Das Video "Microsoft Entra Custom Authentication Extension Overview " bietet eine umfassende Übersicht über die wichtigsten Features und Funktionen der benutzerdefinierten Authentifizierungserweiterungen.

Komponentenübersicht

Es gibt zwei Komponenten, die Sie konfigurieren müssen: eine benutzerdefinierte Authentifizierungserweiterung in Microsoft Entra und eine REST-API. Die benutzerdefinierte Authentifizierungserweiterung gibt Ihren REST-API-Endpunkt an, wenn die REST-API aufgerufen werden soll, und die Anmeldeinformationen zum Aufrufen der REST-API.

Dieses Video enthält detaillierte Anweisungen zum Konfigurieren von benutzerdefinierten Authentifizierungserweiterungen von Microsoft Entra und bietet bewährte Methoden und wertvolle Tipps für eine optimale Implementierung.

Anmeldeablauf

Das folgende Diagramm zeigt den Anmeldeflow, der in eine benutzerdefinierte Authentifizierungserweiterung integriert ist.

Diagramm, das ein Token zeigt, das mit Ansprüchen aus einer externen Quelle erweitert wird

  1. Ein Benutzer versucht, sich bei einer App anzumelden, und wird zur Microsoft Entra-Anmeldeseite umgeleitet.
  2. Sobald ein Benutzer einen bestimmten Schritt in der Authentifizierung abgeschlossen hat, wird ein Ereignislistener ausgelöst.
  3. Ihre benutzerdefinierte Authentifizierungserweiterung sendet eine HTTP-Anforderung an Ihren REST-API-Endpunkt. Die Anforderung enthält Informationen über das Ereignis, das Benutzerprofil, Sitzungsdaten und andere Kontextinformationen.
  4. Die REST-API führt einen benutzerdefinierten Workflow aus.
  5. Die REST-API gibt eine HTTP-Antwort an Microsoft Entra ID zurück.
  6. Die benutzerdefinierte Authentifizierungserweiterungvon Microsoft Entra verarbeitet die Antwort und passt die Authentifizierung basierend auf dem Ereignistyp und den HTTP-Antwortnutzdaten an.
  7. Ein Token wird an die App zurückgegeben.

REST-API-Endpunkte

Wenn ein Ereignis ausgelöst wird, ruft Die Microsoft Entra-ID einen REST-API-Endpunkt auf, den Sie besitzen. Die REST-API muss öffentlich zugänglich sein. Sie kann mit Azure Functions, Azure App Service, Azure Logic Apps oder einem anderen öffentlich verfügbaren API-Endpunkt gehostet werden.

Sie haben die Flexibilität, jede Programmiersprache, jedes Framework oder jede Low-Code-No-Code-Lösung, z. B. Azure Logic Apps, zu verwenden, um Ihre REST-API zu entwickeln und bereitzustellen. Um schnell loszulegen, erwägen Sie die Verwendung der Azure-Funktion. Damit können Sie Ihren Code in einer serverlosen Umgebung ausführen, ohne zuerst einen virtuellen Computer (VM) erstellen oder eine Webanwendung veröffentlichen zu müssen.

Ihre REST-API muss Folgendes verarbeiten:

In diesem Video erfahren Sie, wie Sie einen REST-API-Endpunkt für Authentifizierungserweiterungen mit Azure Logic Apps erstellen, ohne Code zu schreiben. Azure Logic App ermöglicht Benutzern das Erstellen von Workflows mit einem visuellen Designer. Das Video behandelt das Anpassen von Überprüfungs-E-Mails und gilt für alle Arten von benutzerdefinierten Authentifizierungserweiterungen, einschließlich benutzerdefinierter Anspruchsanbieter.

Anforderungsnutzlast

Die Anforderung an die REST-API enthält eine JSON-Nutzlast mit Details zum Ereignis, Benutzerprofil, Authentifizierungsanforderungsdaten und anderen Kontextinformationen. Die Attribute innerhalb der JSON-Nutzlast können verwendet werden, um Logik mit Ihrer API zu steuern.

Beispielsweise kann die Anforderungsnutzlast im Ereignis Token-Ausgabe-Start den eindeutigen Bezeichner des Benutzers enthalten, sodass Sie das Benutzerprofil aus Ihrer eigenen Datenbank abrufen können. Die Anforderungsnutzlastdaten müssen dem Schema entsprechen, wie im Ereignisdokument angegeben.

Zurückgeben von Daten und Aktionstyp

Nachdem Ihre Web-API den Workflow mit Ihrer Geschäftslogik ausgeführt hat, muss sie einen Aktionstyp zurückgeben, der Microsoft Entra weiterleitet, um mit dem Authentifizierungsprozess fortzufahren.

Beispielsweise gibt der von Ihrer Web-API zurückgegebene Aktionstyp im Falle des Start- und Attributsammlungsvorgangs an, ob das Konto im Verzeichnis erstellt werden kann, einen Überprüfungsfehler anzeigen oder den Registrierungsablauf vollständig blockieren.

Die REST-API-Antwort kann Daten enthalten. Das Startereignis für die Tokenausstellung kann z. B. eine Reihe von Attributen bereitstellen, die dem Sicherheitstoken zugeordnet werden können.

Schützen Ihrer REST-API

Um sicherzustellen, dass die Kommunikation zwischen der benutzerdefinierten Authentifizierungserweiterung und Ihrer REST-API ordnungsgemäß geschützt ist, müssen mehrere Sicherheitskontrollen angewendet werden.

  1. Wenn die benutzerdefinierte Authentifizierungserweiterung Ihre REST-API aufruft, sendet sie einen HTTP-Authorization-Header mit einem von Microsoft Entra ID ausgestellten Bearertoken.
  2. Das Bearertoken enthält einen appid- oder azp-Anspruch. Überprüfen Sie, ob der jeweilige Anspruch den Wert 99045fe1-7639-4a75-9d4a-577b6ca3810f enthält. Dieser Wert stellt sicher, dass die REST-API tatsächlich durch Microsoft Entra ID aufgerufen wird.
    1. Überprüfen Sie für V1-Anwendungen den appid-Anspruch.
    2. Überprüfen Sie für V2-Anwendungen den azp-Anspruch.
  3. Der Bearertoken-aud-Zielgruppenanspruch enthält die ID der zugeordneten Anwendungsregistrierung. Ihr REST-API-Endpunkt muss überprüfen, ob das Bearertoken für diese bestimmte Zielgruppe ausgestellt wird.
  4. Der Bearertoken-iss-Ausstelleranspruch enthält die URL des Microsoft Entra-Ausstellers. Je nach Mandantenkonfiguration ist die Aussteller-URL eine der folgenden:
    • Mitarbeiter: https://login.microsoftonline.com/{tenantId}/v2.0.
    • Kunde: https://{domainName}.ciamlogin.com/{tenantId}/v2.0.

Benutzerdefinierte Authentifizierungsereignistypen

In diesem Abschnitt werden die Ereignisse für benutzerdefinierte Authentifizierungserweiterungen aufgeführt, die in der Belegschaft von Microsoft Entra ID und bei externen Mandanten verfügbar sind. Ausführliche Informationen zu den Veranstaltungen finden Sie in der jeweiligen Dokumentation.

Ereignis Mitarbeitermandant Externer Mieter
Start der Tokenausstellung
Start der Attributauflistung
Attributauflistung übermitteln
Einmaliger Passcode senden

Start der Tokenausstellung

Das Startereignis für die Tokenausstellung wird OnTokenIssuanceStart ausgelöst, wenn ein Token an eine Anwendung ausgegeben werden soll. Es handelt sich um einen Ereignistyp, der in einem benutzerdefinierten Anspruchsanbieter eingerichtet ist. Der benutzerdefinierte Anspruchsanbieter ist eine benutzerdefinierte Authentifizierungserweiterung, die eine REST-API aufruft, um Ansprüche von externen Systemen abzurufen. Ein benutzerdefinierter Anspruchsanbieter ordnet Ansprüche aus externen Systemen Token zu und kann einer oder mehreren Anwendungen in Ihrem Verzeichnis zugewiesen werden.

Tipp

Testen Sie es jetzt

Um dieses Feature auszuprobieren, wechseln Sie zur Woodgrove Groceries-Demo, und starten Sie den Anwendungsfall „Ansprüche zu Sicherheitstoken aus einer REST-API hinzufügen“.

Starten der Attributauflistung

Startereignisse der Attributsammlung können mit benutzerdefinierten Authentifizierungserweiterungen verwendet werden, um Logik hinzuzufügen, bevor Attribute von einem Benutzer erfasst werden. Das OnAttributeCollectionStart-Ereignis tritt am Anfang des Attributauflistungsschritts auf, bevor die Attributauflistungsseite gerendert wird. Sie können Aktionen wie das Vorbefüllen von Werten und das Anzeigen eines Blockierungsfehlers hinzufügen.

Tipp

Testen Sie es jetzt

Um dieses Feature auszuprobieren, wechseln Sie zur Woodgrove Groceries Demo, und starten Sie den Anwendungsfall "Vorfüllen von Anmeldeattributen".

Übermitteln der Attributauflistung

Attributauflistungs-Übermittlungsereignisse können mit benutzerdefinierten Authentifizierungserweiterungen verwendet werden, um Logik hinzuzufügen, nachdem Attribute von einem Benutzer gesammelt wurden. Das OnAttributeCollectionSubmit-Ereignis wird ausgelöst, nachdem der Benutzer Attribute eingegeben und übermittelt hat, sodass Sie Aktionen wie das Überprüfen von Einträgen oder Ändern von Attributen hinzufügen können.

Tipp

Testen Sie es jetzt

Um dieses Feature auszuprobieren, wechseln Sie zur Woodgrove Groceries-Demo, und starten Sie den Anwendungsfall "Sign-up-Attribute überprüfen" oder den Anwendungsfall "Benutzer daran hindern, den Anmeldevorgang fortzusetzen".

Einmalpasswort senden

Das OnOtpSend-Ereignis wird ausgelöst, wenn eine Einmal-Passcode-E-Mail aktiviert wird. Sie können eine REST-API aufrufen, um Ihren eigenen E-Mail-Anbieter zu verwenden. Dieses Ereignis kann verwendet werden, um angepasste E-Mails an Benutzer zu senden, die sich mit E-Mail-Adresse anmelden, sich mit einer Einmalkennung (Email OTP) anmelden, ihr Kennwort mithilfe von E-Mail-OTP zurücksetzen oder E-Mail OTP für die mehrstufige Authentifizierung (MFA) verwenden.

Wenn das OnOtpSend-Ereignis aktiviert ist, sendet Microsoft Entra einen Einmal-Passcode an Ihre angegebene REST-API. Die REST-API verwendet dann Ihren ausgewählten E-Mail-Anbieter, z. B. Azure Communication Service oder SendGrid, um das Einmalpasswort mit Ihrer benutzerdefinierten E-Mail-Vorlage, der Absenderadresse und dem E-Mail-Betreff zu senden, während sie gleichzeitig die Lokalisierung unterstützt.

Tipp

Testen Sie es jetzt

Um dieses Feature auszuprobieren, wechseln Sie zur Woodgrove Groceries-Demo, und starten Sie den Anwendungsfall „Verwenden eines benutzerdefinierten E-Mail-Anbieters für einen einmaligen Code“.