Übersicht über benutzerdefinierte Authentifizierungserweiterungen
Dieser Artikel enthält eine allgemeine, technische Übersicht über benutzerdefinierte Authentifizierungserweiterungen für Microsoft Entra ID. Mit benutzerdefinierten Authentifizierungserweiterungen können Sie die Microsoft Entra-Authentifizierungserfahrung durch eine Integration mit externen Systemen anpassen.
Das folgende Diagramm zeigt den Anmeldeflow, der in eine benutzerdefinierte Authentifizierungserweiterung integriert ist.
- Ein Benutzer versucht, sich bei einer App anzumelden, und wird zur Microsoft Entra-Anmeldeseite umgeleitet.
- Sobald ein Benutzer einen bestimmten Schritt in der Authentifizierung abgeschlossen hat, wird ein Ereignislistener ausgelöst.
- 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.
- Die REST-API führt einen benutzerdefinierten Workflow aus.
- Die REST-API gibt eine HTTP-Antwort an Microsoft Entra ID zurück.
- Die benutzerdefinierte Authentifizierungserweiterungvon Microsoft Entra verarbeitet die Antwort und passt die Authentifizierung basierend auf dem Ereignistyp und den HTTP-Antwortnutzdaten an.
- Ein Token wird an die App zurückgegeben.
REST-API-Endpunkt der benutzerdefinierten Authentifizierungserweiterung
Wenn ein Ereignis ausgelöst wird, ruft Microsoft Entra ID einen REST-API-Endpunkt auf, den Sie besitzen. Die Anforderung an die REST-API enthält Informationen über das Ereignis, das Benutzerprofil, Authentifizierungsanforderungsdaten und andere Kontextinformationen.
Sie können eine beliebige Programmiersprache, ein Framework und eine beliebige Hostingumgebung verwenden, um Ihre REST-API für benutzerdefinierte Authentifizierungserweiterungen zu erstellen und zu hosten. Verwenden Sie für einen schnellen Einsteig eine C#-Azure-Funktion. Mit Azure Functions können Sie Ihren Code in einer serverlosen Umgebung ausführen, ohne vorher einen virtuellen Computer zu erstellen oder eine Webanwendung zu veröffentlichen.
Ihre REST-API muss Folgendes verarbeiten:
- Tokenvalidierung zum Sichern der REST-API-Aufrufe.
- Geschäftslogik
- Eingehende und ausgehende Überprüfung von HTTP-Anforderungs- und Antwortschemata.
- Überwachung und Protokollierung.
- Verfügbarkeits-, Leistungs- und Sicherheitskontrollen.
Entwickelnde, die die REST-API für Azure Functions ausführen, sollten die NuGet-Bibliothek Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents verwenden. Diese hilft bei der Implementierung der Tokenüberprüfung mit den integrierten Authentifizierungsfunktionen von Microsoft Azure. Sie stellt ein Datenmodell für verschiedene Ereignistypen bereit, initiiert die Verarbeitung ein- und ausgehender Anforderungen und Antworten, sodass mehr Fokus auf die Geschäftslogik gesetzt werden kann.
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.
- Wenn die benutzerdefinierte Authentifizierungserweiterung Ihre REST-API aufruft, sendet sie einen HTTP-
Authorization
-Header mit einem von Microsoft Entra ID ausgestellten Bearertoken. - Das Bearertoken enthält einen
appid
- oderazp
-Anspruch. Überprüfen Sie, ob der jeweilige Anspruch den Wert99045fe1-7639-4a75-9d4a-577b6ca3810f
enthält. Dieser Wert stellt sicher, dass die REST-API tatsächlich durch Microsoft Entra ID aufgerufen wird.- Überprüfen Sie für V1-Anwendungen den
appid
-Anspruch. - Überprüfen Sie für V2-Anwendungen den
azp
-Anspruch.
- Überprüfen Sie für V1-Anwendungen den
- 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. - Der Anspruch des Bearertokenausstellers
iss
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
.
- Mitarbeiter:
Benutzerdefinierter Anspruchsanbieter
Ein benutzerdefinierter Anspruchsanbieter besteht aus einer benutzerdefinierten 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.
Erfahren Sie mehr über benutzerdefinierte Anspruchsanbieter.
Start- und Sendeereignisse der Attributsammlung
Start- und Sendeereignisse der Attributsammlung können mit benutzerdefinierten Authentifizierungserweiterungen verwendet werden, um Logik vor und nach der Erfassung von Attributen von einem Benutzer hinzuzufügen. Sie können z. B. einen Workflow hinzufügen, um die Attribute zu überprüfen, die ein Benutzer während der Registrierung eingibt. Das OnAttributeCollectionStart-Ereignis tritt am Anfang des Attributsammlungsschritts auf, bevor die Attributsammlungsseite gerendert wird. Sie können Aktionen wie das Vorbefüllen von Werten und das Anzeigen eines Blockierungsfehlers hinzufügen. 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.
Hinweis
Start- und Sendeereignisse der Attributesammlung sind derzeit nur für Benutzerflows in Microsoft Entra External ID für externe Mandanten verfügbar. Ausführliche Informationen finden Sie unter Hinzufügen ihrer eigenen Geschäftslogik.
Weitere Informationen
- Erfahren Sie, wie Sie benutzerdefinierte Authentifizierungserweiterungen für das Starten und Senden von Ereignissen mit einer OpenID Connect-Beispielanwendung für die Attributsammlung erstellen.