Übersicht über Benutzerdefinierte Azure AD B2C-Richtlinien
Benutzerdefinierte Richtlinien sind Konfigurationsdateien, die das Verhalten Ihres Azure Active Directory B2C-Mandanten (Azure AD B2C-Mandanten) definieren. Während Benutzerflows im Azure AD B2C-Portal für die gängigsten Identitätsaufgaben vordefiniert sind, können benutzerdefinierte Richtlinien von einem Identitätsentwickler bearbeitet werden, um die Ausführung vieler verschiedener Aufgaben zu ermöglichen.
Eine benutzerdefinierte Richtlinie ist vollständig konfigurierbar und richtliniengesteuert. Eine benutzerdefinierte Richtlinie orchestriert die Vertrauensstellung zwischen Entitäten in Standardprotokollen, Zum Beispiel OpenID Connect, OAuth, SAML und einige wenige nicht standardmäßige Protokolle wie der Austausch von Systemansprüchen auf REST-API-Basis. Das Framework erstellt benutzerfreundliche Umgebungen mit Positivlisten.
Eine benutzerdefinierte Richtlinie wird als eine oder mehrere XML-formatierte Dateien dargestellt, die aufeinander in einer hierarchischen Kette verweisen. Die XML-Elemente definieren die Bausteine, die Interaktion mit dem Benutzer und anderen Parteien sowie die Geschäftslogik.
Starter Pack für benutzerdefinierte Richtlinien
Das Starter Pack mit benutzerdefinierten Azure AD B2C-Richtlinien enthält mehrere vordefinierte Richtlinien, damit Sie schnell loslegen können. Jedes dieser Starter Packs enthält die kleinste Anzahl von technischen Profilen sowie die zum Erreichen der beschriebenen Szenarien benötigten User Journeys:
- LocalAccounts ermöglicht die ausschließliche Nutzung von lokalen Konten.
- SocialAccounts ermöglicht die ausschließliche Nutzung von Konten sozialer Netzwerke (oder Verbundkonten).
- SocialAndLocalAccounts ermöglicht sowohl die Verwendung von lokalen Konten als auch von Konten für soziale Netzwerke. Die meisten unserer Beispiele beziehen sich auf diese Richtlinie.
- SocialAndLocalAccountsWithMFA – Ermöglicht lokale Optionen und Optionen für soziale Netzwerke sowie zur Multi-Faktor-Authentifizierung.
Im GitHub-Repository für Azure AD B2C-Beispiele finden Sie mehrere erweiterte benutzerdefinierte Azure AD B2C-User Journeys zu CIAM (Customer Identity and Access Management, Kundenidentitäts- und Zugriffsverwaltung) und -Szenarien. Dazu zählen beispielsweise Verbesserungen der Richtlinien für lokale und Social Media-Konten, Verbesserungen der mehrstufigen Authentifizierung (MFA) sowie der Benutzeroberfläche, allgemeine Verbesserungen, App-Migration, Benutzermigration, bedingter Zugriff, Webtest und CI/CD.
Verstehen der Grundlagen
Ansprüche
Ein Anspruch bietet eine temporäre Speicherung von Daten während der Ausführung einer Azure AD B2C-Richtlinie. Ansprüche sind eher wie Variablen in einer Programmiersprache. Er kann Informationen zum Benutzer, wie z. B. Vorname oder Nachname, oder andere Ansprüche speichern, die vom Benutzer oder anderen Systemen (Anspruchsaustausch) erhalten wurden. Im Anspruchsschema deklarieren Sie Ihre Ansprüche.
Beim Ausführen der Richtlinie sendet Azure AD B2C Ansprüche an interne und externe Parteien und empfängt Ansprüche von diesen. Anschließend wird eine Teilmenge dieser Ansprüche als Teil des Tokens an die Anwendung der vertrauenden Seite gesendet. Ansprüche werden auf folgende Weise verwendet:
- Ein Anspruch wird für das Verzeichnisbenutzerobjekt gespeichert, gelesen oder aktualisiert.
- Ein Anspruch wird von einem externen Identitätsanbieter empfangen.
- Ansprüche werden über einen benutzerdefinierten REST-API-Dienst gesendet oder empfangen.
- Daten werden während der Flows zur Registrierung oder Bearbeitung des Profils als Ansprüche vom Benutzer gesammelt.
Bearbeiten von Ansprüchen
Anspruchstransformationen sind vordefinierte Funktionen, mit denen Sie einen bestimmten Anspruch in einen anderen konvertieren, einen Anspruch evaluieren oder einen Anspruchswert festlegen können. Beispiele sind das Hinzufügen eines Elements zu einer Zeichenfolgensammlung, das Ändern der Groß-/Kleinschreibung einer Zeichenfolge oder das Auswerten eines Anspruchs mit Datums- und Uhrzeitangaben. Eine Anspruchstransformation gibt eine Transformationsmethode an, die ebenfalls vordefiniert ist.
Anpassen und Lokalisieren Ihrer Benutzeroberfläche
Um Informationen von Ihren Benutzern zu sammeln, indem Sie eine Seite in ihrem Webbrowser anzeigen, verwenden Sie das selbstbestätigte technische Profil. Sie können Ihr selbstbestätigtes technisches Profil bearbeiten, indem Sie Ansprüche hinzufügen und Benutzereingaben anpassen.
Zum Anpassen der Benutzeroberfläche für Ihr selbstbestätigtes technisches Profil geben Sie im ContentDefinition-Element eine URL mit benutzerdefiniertem HTML-Inhalt an. Verweisen Sie im selbstbestätigten technischen Profil auf die ID dieser Inhaltsdefinition.
Wenn Sie sprachspezifische Zeichenfolgen anpassen möchten, verwenden Sie das Localization-Element. Eine Inhaltsdefinition kann einen Verweis auf ein Localization-Element mit einer Liste der lokalisierten Ressourcen enthalten, die geladen werden sollen. Azure AD B2C führt die Benutzeroberflächenelemente mit dem HTML-Inhalt, der über Ihre URL geladen wird, zusammen und zeigt anschließend die Seite für den Benutzer an.
Übersicht über die Richtlinie für die vertrauende Seite
Eine Anwendung der vertrauenden Seite, die im SAML-Protokoll als Dienstanbieter bezeichnet wird, ruft die Richtlinie der vertrauenden Seite auf, um eine bestimmte User Journey auszuführen. Die Richtlinie der vertrauenden Seite gibt die auszuführende User Journey sowie eine Liste der Ansprüche an, die das Token enthält.
Alle Anwendungen der vertrauenden Seite, die dieselbe Richtlinie verwenden, erhalten dieselben Tokenansprüche, und der bzw. die Benutzer*in durchläuft die gleiche User Journey.
User Journeys
Mithilfe von User Journeys können Sie die Geschäftslogik durch den Pfad definieren, den Benutzer befolgen müssen, um Zugriff auf Ihre Anwendung zu erhalten. Die Benutzer werden durch diese User Journey geleitet, um die Ansprüche abzurufen, die an Ihre Anwendung übermittelt werden sollen. Eine User Journey besteht aus einer Sequenz von Orchestrierungsschritten. Benutzer müssen den letzten Schritt erreichen, um ein Token zu erhalten.
In den folgenden Anweisungen wird beschrieben, wie Sie der Richtlinie im Starter Pack für Konten sozialer Netzwerke und lokale Konten Orchestrierungsschritte hinzufügen können. Nachfolgend finden Sie ein Beispiel für einen REST-API-Aufruf, der hinzugefügt wurde.
Orchestrierungsschritte
Der Orchestrierungsschritt verweist auf eine Methode, die den beabsichtigten Zweck oder die gewünschte Funktionalität implementiert. Diese Methode wird als ein technisches Profil bezeichnet. Wenn die User Journey Verzweigungen erfordert, damit die Geschäftslogik besser dargestellt werden kann, verweist der Orchestrierungsschritt auf die untergeordnete Journey. Eine untergeordnete Journey enthält eigene Orchestrierungsschritte.
Benutzer müssen den letzten Orchestrierungsschritt der User Journey erreichen, um ein Token zu erhalten. Möglicherweise müssen die Benutzer dabei allerdings nicht alle Orchestrierungsschritte durchlaufen. Orchestrierungsschritte können anhand von Voraussetzungen, die im Orchestrierungsschritt definiert werden, bedingungsabhängig ausgeführt werden.
Nachdem ein Orchestrierungsschritt abgeschlossen wurde, speichert Azure AD B2C die ausgegebenen Ansprüche im Anspruchsbehälter. Die Ansprüche im Anspruchsbehälter können von allen nachfolgenden Orchestrierungsschritten der User Journey verwendet werden.
Das folgende Diagramm zeigt, wie die Orchestrierungsschritte der User Journey auf den Anspruchsbehälter zugreifen können.
Technisches Profil
Ein technisches Profil bietet eine Schnittstelle für die Kommunikation mit verschiedenen Typen von Parteien. Eine User Journey kombiniert Aufrufe von technischen Profilen mithilfe von Orchestrierungsschritten, um so Ihre Geschäftslogik zu definieren.
Allen Typen von technischen Profilen liegt das gleiche Konzept zugrunde. Sie senden Eingabeansprüche, führen Anspruchstransformation aus und kommunizieren mit der konfigurierten Partei. Nach Abschluss des Prozesses gibt das technische Profil die Ausgabeansprüche an den Anspruchsbehälter zurück. Weitere Informationen finden Sie unter Übersicht über technische Profile.
Technisches Validierungsprofil
Wenn Benutzer mit der Benutzeroberfläche interagieren, können Sie die dabei gesammelten Daten überprüfen. Für die Interaktion mit Benutzern muss ein selbstbestätigtes technisches Profil verwendet werden.
Zum Überprüfen der Benutzereingabe wird ein technisches Validierungsprofil vom selbstbestätigten technischen Profil aufgerufen. Ein technisches Validierungsprofil stellt eine Methode dar, beliebige nicht interaktive technische Profile aufzurufen. In diesem Fall kann das technische Profil Ausgabeansprüche oder eine Fehlermeldung zurückgeben. Die Fehlermeldung wird für Benutzer auf dem Bildschirm gerendert, sodass sie den Vorgang wiederholen können.
Im folgenden Diagramm wird veranschaulicht, wie Azure AD B2C die Benutzeranmeldeinformationen mit einem technischen Validierungsprofil überprüft.
Vererbungsmodell
Jedes Starter Pack enthält die folgenden Dateien:
- Eine Basisdatei enthält die meisten Definitionen. Um die Problembehandlung und langfristige Verwaltung Ihrer Richtlinien zu vereinfachen, sollten Sie versuchen, möglichst wenige Änderungen an dieser Datei vorzunehmen.
- Eine Lokalisierungsdatei, welche die Lokalisierungszeichenfolgen enthält. Diese Richtliniendatei wird von der Basisdatei abgeleitet. Verwenden Sie in dieser Datei verschiedene Sprachen, um die Anforderungen Ihrer Kunden zu erfüllen.
- Eine Erweiterungendatei enthält die eindeutigen Konfigurationsänderungen für Ihren Mandanten. Diese Richtliniendatei wird von der Lokalisierungsdatei abgeleitet. Verwenden Sie diese Datei, um neue Funktionalität hinzufügen oder vorhandene Funktionen zu überschreiben. Sie verwenden diese Datei z.B. für einen Verbund mit neuen Identitätsanbietern.
- Eine Datei der vertrauenden Seite stellt die einzige aufgabenorientierte Datei dar, die direkt von der Anwendung der vertrauenden Seite aufgerufen wird, z.B. Ihren Web-, mobilen oder Desktopanwendungen. Jede eindeutige Aufgabe wie das Registrieren, Anmelden oder Bearbeiten des Profils,setzt eine eigene Richtliniendatei für die vertrauende Seite voraus. Diese Richtliniendatei wird von der Erweiterungsdatei abgeleitet.
Das Vererbungsmodell lautet wie folgt:
- Die untergeordnete Richtlinie kann auf jeder Ebene von der übergeordneten Richtlinie erben und diese durch Hinzufügen neuer Elemente erweitern.
- In komplexeren Szenarien können Sie weitere Vererbungsebenen (bis zu insgesamt 10 Ebenen) hinzufügen.
- Sie können auch zusätzliche Richtlinien der vertrauenden Seite hinzufügen. Dies können z. B. Richtlinien für das Löschen des eigenen Kontos, das Ändern einer Telefonnummer, eine SAML-Richtlinie der vertrauenden Seite usw. sein.
Das folgende Diagramm zeigt die Beziehung zwischen den Richtliniendateien und den Anwendungen der vertrauenden Seite.
Leitfaden und bewährte Methoden
Bewährte Methoden
Sie können Ihre eigene Geschäftslogik in eine benutzerdefinierte Azure AD B2C-Richtlinie integrieren, um die gewünschten Benutzerumgebungen zu erstellen und die Funktionalität des Diensts zu erweitern. Dazu stehen Ihnen verschiedene bewährte Methoden und Empfehlungen für den Einstieg zur Verfügung.
- Erstellen Sie Ihre Logik in der Erweiterungsrichtlinie oder in der Richtlinie der vertrauenden Seite. Sie können neue Elemente hinzufügen, die die Basisrichtlinie überschreiben, indem Sie auf dieselbe ID verweisen. Mit diesem Ansatz können Sie Ihr Projekt aufskalieren und gleichzeitig spätere Upgrades der Basisrichtlinie vereinfachen, wenn Microsoft neue Starter Packs veröffentlicht.
- Es wird dringend davon abgeraten, Änderungen an der Basisrichtlinie vorzunehmen. Falls doch Änderungen vorgenommen werden müssen, fügen Sie an den entsprechenden Stellen Kommentare ein.
- Falls Sie ein Element überschreiben (z. B. die Metadaten eines technischen Profils), vermeiden Sie das Kopieren des gesamten technischen Profils aus der Basisrichtlinie. Kopieren Sie stattdessen nur den benötigten Abschnitt des Elements. Ein Beispiel für diese Änderung finden Sie unter Deaktivieren der E-Mail-Überprüfung während der Kundenregistrierung in Azure Active Directory B2C.
- Um doppelte technische Profile mit identischer Kernfunktionalität zu minimieren, nutzen Sie die Inklusion technischer Profile.
- Vermeiden Sie es, während der Anmeldung in das Microsoft Entra-Verzeichnis zu schreiben, da dies zu Drosselungsproblemen führen kann.
- Wenn Ihre Richtlinie externe Abhängigkeiten aufweist, wie z. B. REST-APIs, stellen Sie sicher, dass sie hochverfügbar sind.
- Für mehr Benutzerfreundlichkeit stellen Sie durch Online-Content Delivery sicher, dass Ihre benutzerdefinierten HTML-Vorlagen global bereitgestellt werden. Mit Azure Content Delivery Network (CDN) können Sie Ladezeiten reduzieren, Bandbreite sparen und die Reaktionsgeschwindigkeit erhöhen.
- Wenn Sie an der User Journey eine Änderung vornehmen möchten, kopieren Sie die gesamte User Journey aus der Basisrichtlinie in die Erweiterungsrichtlinie. Weisen Sie der kopierten User Journey eine eindeutige User Journey-ID zu. Ändern Sie dann in der Richtlinien der vertrauenden Seite das DefaultUserJourney-Element so, dass es auf die neue User Journey verweist.
Problembehandlung
Beim Entwickeln mit Azure AD B2C-Richtlinien können beim Ausführen Ihrer User Journey Fehler oder Ausnahmen auftreten. Diese können mithilfe von Application Insights untersucht werden.
- Integrieren Sie Application Insights mit Azure AD B2C, um Ausnahmen zu diagnostizieren.
- Die Azure AD B2C-Erweiterung für Visual Studio Code vereinfacht das Zugreifen auf und das Visualisieren von Protokollen basierend auf einem Richtliniennamen und der Uhrzeit.
- Der häufigste Fehler beim Einrichten von benutzerdefinierten Richtlinien ist falsch formatierter XML-Code. Mit der XML-Schemavalidierung können Sie Fehler identifizieren, bevor Sie Ihre XML-Datei hochladen.
Continuous Integration
Mithilfe einer CI/CD-Pipeline (Continuous Integration/Continuous Delivery), die Sie in Azure Pipelines einrichten, können Sie benutzerdefinierte Azure AD B2C-Richtlinien in Ihre Softwarebereitstellung und die Codesteuerungsautomatisierung einbeziehen. Bei der Bereitstellung in unterschiedlichen Azure AD B2C-Umgebungen (z. B. Entwicklung, Test und Produktion) empfiehlt es sich, manuelle Prozesse zu entfernen und automatisierte Tests mithilfe von Azure Pipelines auszuführen.
Vorbereiten der Umgebung
Erste Schritte mit benutzerdefinierten Richtlinien in Azure AD B2C:
- Erstellen eines Azure AD B2C-Mandanten
- Registrieren Sie im Azure-Portal eine Webanwendung, damit Sie Ihre Richtlinie testen können.
- Fügen Sie die erforderlichen Richtlinienschlüssel hinzu, und registrieren Sie die Identity Experience Framework-Anwendungen.
- Laden Sie das Starter Pack für Azure AD B2C-Richtlinien herunter und in Ihren Mandanten hoch.
- Nachdem Sie das Starter Pack hochgeladen haben, testen Sie Ihre Registrierungs- oder Anmelderichtlinie.
- Es wird empfohlen, Visual Studio Code (VS Code) herunterzuladen und zu installieren. Visual Studio Code ist ein einfacher, aber dennoch leistungsfähiger Quellcode-Editor, der auf Ihrem Desktop ausgeführt wird und für Windows, macOS und Linux verfügbar ist. Mit VS Code können Sie schnell durch Ihre benutzerdefinierten Azure AD B2C-Richtliniendateien (XML-Dateien) navigieren und diese bearbeiten, indem Sie die Azure AD B2C-Erweiterung für VS Code installieren.
Nächste Schritte
Nachdem Sie Ihre Azure AD B2C-Richtlinie eingerichtet und getestet haben, können Sie mit der Anpassung Ihrer Richtlinie beginnen. Die Vorgehensweise erfahren Sie in den folgenden Artikeln:
- Hinzufügen von Ansprüchen und Anpassen von Benutzereingaben mit benutzerdefinierten Richtlinien. Erfahren Sie, wie Sie einen Anspruch definieren und der Benutzeroberfläche einen Anspruch hinzufügen, indem Sie einige der technischen Profile des Starter Packs anpassen.
- Anpassen der Benutzeroberfläche Ihrer Anwendung mit einer benutzerdefinierten Richtlinie. Erfahren Sie, wie Sie eigene HTML-Inhalte erstellen und die Inhaltsdefinition anpassen.
- Lokalisieren der Benutzeroberfläche Ihrer Anwendung mit einer benutzerdefinierten Richtlinie. Erfahren Sie, wie Sie eine Liste mit unterstützten Sprachen einrichten und sprachspezifische Bezeichnungen bereitstellen, indem Sie das Element mit lokalisierten Ressourcen hinzufügen.
- Während Sie Ihre Richtlinie entwickeln und testen, können Sie die E-Mail-Überprüfung deaktivieren. Erfahren Sie, wie Sie die Metadaten eines technischen Profils überschreiben.
- Einrichten der Anmeldung mit einem Google-Konto mithilfe benutzerdefinierter Richtlinien. Erfahren Sie, wie Sie einen neuen Anspruchsanbieter mit einem technischen OAuth2-Profil erstellen. Passen Sie dann die User Journey so an, dass sie eine Option zur Anmeldung mit Google bietet.
- Um Probleme mit Ihren benutzerdefinierten Richtlinien zu diagnostizieren, können Sie mit Application Insights Azure Active Directory B2C-Protokolle sammeln. Erfahren Sie, wie Sie neue technische Profile hinzufügen und die Richtlinie für die vertrauende Seite konfigurieren.
- Informationen zur Erstellung benutzerdefinierter Richtlinien von Grund auf finden Sie in der Schrittanleitungsreihe zum Erstellen und Ausführen Ihrer eigenen benutzerdefinierten Richtlinien in Azure Active Directory B2C.