Beheben von Problemen mit benutzerdefinierten Azure AD B2C-Richtlinien und dem Framework für die IdentitätsfunktionTroubleshoot Azure AD B2C custom policies and Identity Experience Framework

Wenn Sie benutzerdefinierte Azure AD B2C-Richtlinien (Azure Active Directory B2C) verwenden, kann es unter Umständen schwierig sein, das Framework für die Identitätsfunktion (Identity Experience Framework) im XML-Format der Richtliniensprache einzurichten.If you use Azure Active Directory B2C (Azure AD B2C) custom policies, you might experience challenges setting up the Identity Experience Framework in its policy language XML format. Das Erlernen des Schreibens von benutzerdefinierten Richtlinien ähnelt dem Lernen einer neuen Sprache.Learning to write custom policies can be like learning a new language. In diesem Artikel werden einige Tools und Tipps beschrieben, die Ihnen beim Ermitteln und Lösen von Problemen behilflich sein können.In this article, we describe some tools and tips that can help you discover and resolve issues.

Der Schwerpunkt des Artikels liegt auf der Problembehandlung für die Konfiguration von benutzerdefinierten Azure AD B2C-Richtlinien.This article focuses on troubleshooting your Azure AD B2C custom policy configuration. Die Anwendung der vertrauenden Seite und die dazugehörige Identitätsbibliothek werden nicht behandelt.It doesn't address the relying party application or its identity library.

XML-BearbeitungXML editing

Der häufigste Fehler beim Einrichten von benutzerdefinierten Richtlinien ist falsch formatierter XML-Code.The most common error in setting up custom policies is improperly formatted XML. Es ist praktisch unerlässlich, einen guten XML-Editor zu verwenden.A good XML editor is nearly essential. Dieser verfügt über folgende Funktionen: natives Anzeigen von XML-Code, farbiges Codieren von Inhalt, Vorabeinfügen von häufig verwendeten Ausdrücken, Beibehalten der Indizierung von XML-Elementen und Überprüfen per XML-Schema.It displays XML natively, color-codes content, pre-fills common terms, keeps XML elements indexed, and can validate against an XML schema.

Zwei unserer bevorzugten Editoren sind Visual Studio Code und Notepad++.Two of our favorite editors are Visual Studio Code and Notepad++.

Mit der XML-Schemavalidierung werden Fehler identifiziert, bevor Sie Ihre XML-Datei hochladen.XML schema validation identifies errors before you upload your XML file. Im Stammordner des Starter Packs finden Sie die XML-Schemadefinition TrustFrameworkPolicy_0.3.0.0.xsd.In the root folder of the starter pack, get the XML schema definition file TrustFrameworkPolicy_0.3.0.0.xsd. Um herauszufinden, wie die XSD-Schemadatei für die Validierung im Editor verwendet werden kann, suchen Sie in der Dokumentation des Editors nach XML-Tools, XML-Validierung oder ähnlichen Begriffen.To find out how to use the XSD schema file for validation in your editor, look for XML tools and XML validation or similar in the editor's documentation.

Es kann auch hilfreich sein, sich die XML-Regeln anzusehen.You might find a review of XML rules helpful. Bei Azure AD B2C werden alle erkannten XML-Formatierungsfehler abgelehnt.Azure AD B2C rejects any XML formatting errors that it detects. Gelegentlich kann falsch formatierter XML-Code zu irreführenden Fehlermeldungen führen.Occasionally, incorrectly formatted XML might cause error messages that are misleading.

Hochladen von Richtlinien und RichtlinienvalidierungUpload policies and policy validation

Die Überprüfung der XML-Richtliniendatei erfolgt automatisch beim Hochladen.Validation of the XML policy file is performed automatically on upload. Die meisten Fehler haben zur Folge, dass der Upload fehlschlägt.Most errors cause the upload to fail. Die Validierung enthält die Richtliniendatei, die Sie hochladen.Validation includes the policy file that you are uploading. Außerdem enthält sie die Kette der Dateien, auf die sich die Uploaddatei bezieht (Datei mit den Richtlinien der vertrauenden Seite, Datei mit Erweiterungen und Basisdatei).It also includes the chain of files the upload file refers to (the relying party policy file, the extensions file, and the base file).

Beispiele für häufige Validierungsfehler:Common validation errors include the following:

Fehlercodeausschnitt: ...makes a reference to ClaimType with id "displayName" but neither the policy nor any of its base policies contain such an elementError snippet: ...makes a reference to ClaimType with id "displayName" but neither the policy nor any of its base policies contain such an element

  • Der „ClaimType“-Wert ist ggf. falsch geschrieben oder ist im Schema nicht vorhanden.The ClaimType value might be misspelled, or does not exist in the schema.
  • „ClaimType“-Werte müssen in mindestens einer Datei der Richtlinie definiert sein.ClaimType values must be defined in at least one of the files in the policy. Beispiel: <ClaimType Id="issuerUserId">For example: <ClaimType Id="issuerUserId">
  • Wenn „ClaimType“ in der Datei mit den Erweiterungen definiert ist, aber auch in einem „TechnicalProfile“-Wert der Basisdatei verwendet wird, führt das Hochladen der Basisdatei zu einem Fehler.If ClaimType is defined in the extensions file, but it's also used in a TechnicalProfile value in the base file, uploading the base file results in an error.

Fehlercodeausschnitt: ...makes a reference to a ClaimsTransformation with id...Error snippet: ...makes a reference to a ClaimsTransformation with id...

  • Die Ursachen für den Fehler entsprechen unter Umständen den Ursachen für den ClaimType-Fehler.The causes for this error can be the same as for the ClaimType error.

Fehlercodeausschnitt: Reason: User is currently logged as a user of 'yourtenant.onmicrosoft.com' tenant. In order to manage 'yourtenant.onmicrosoft.com', please login as a user of 'yourtenant.onmicrosoft.com' tenantError snippet: Reason: User is currently logged as a user of 'yourtenant.onmicrosoft.com' tenant. In order to manage 'yourtenant.onmicrosoft.com', please login as a user of 'yourtenant.onmicrosoft.com' tenant

  • Überprüfen Sie, ob die TenantId in den Elementen <TrustFrameworkPolicy\> und <BasePolicy\> mit Ihrem Azure AD B2C-Zielmandanten übereinstimmt.Check that the TenantId value in the <TrustFrameworkPolicy\> and <BasePolicy\> elements match your target Azure AD B2C tenant.

Behandeln von RuntimeproblemenTroubleshoot the runtime

  • Verwenden Sie Jetzt ausführen und https://jwt.ms, um Ihre Richtlinien unabhängig von Ihrer Webanwendung oder mobilen Anwendung zu testen.Use Run now and https://jwt.ms to test your policies independently of your web or mobile application. Diese Website verhält sich wie eine Anwendung der vertrauenden Seite.This website acts like a relying party application. Es werden die Inhalte des von Ihrer Azure AD B2C-Richtlinie generierten JSON-Webtokens (JWT) angezeigt.It displays the contents of the JSON web token (JWT) that is generated by your Azure AD B2C policy.

    So erstellen Sie eine Testanwendung, die für die Tokenüberprüfung an https://jwt.ms weiterleiten kann:To create a test application that can redirect to https://jwt.ms for token inspection:

    Zum Registrieren einer Anwendung in Ihrem Azure AD B2C-Mandanten können Sie die unsere neue einheitliche Benutzeroberfläche App-Registrierungen oder unsere alte Benutzeroberfläche Anwendungen (Legacy) verwenden.To register an application in your Azure AD B2C tenant, you can use our new unified App registrations experience or our legacy Applications (Legacy) experience. Weitere Informationen zur neuen OberflächeLearn more about the new experience.

    1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal.
    2. Wählen Sie im oberen Menü den Filter Verzeichnis und Abonnement aus, und wählen Sie dann das Verzeichnis aus, das Ihren Azure AD B2C-Mandanten enthält.Select the Directory + subscription filter in the top menu, and then select the directory that contains your Azure AD B2C tenant.
    3. Wählen Sie im linken Menü die Option Azure AD B2C aus.In the left menu, select Azure AD B2C. Oder wählen Sie Alle Dienste aus, suchen Sie nach dem Eintrag Azure AD B2C, und wählen Sie ihn aus.Or, select All services and search for and select Azure AD B2C.
    4. Wählen Sie App-Registrierungen aus, und wählen Sie dann Registrierung einer neuen Anwendung aus.Select App registrations, and then select New registration.
    5. Geben Sie unter Name einen Namen für die Anwendung ein.Enter a Name for the application. Zum Beispiel testapp1.For example, testapp1.
    6. Wählen Sie Konten in einem Organisationsverzeichnis oder ein beliebiger Identitätsanbieter aus.Select Accounts in any organizational directory or any identity provider.
    7. Wählen Sie unter Umleitungs-URI die Option Web aus, und geben Sie https://jwt.ms in das URL-Textfeld ein.Under Redirect URI, select Web, and then enter https://jwt.ms in the URL text box.
    8. Aktivieren Sie unter Berechtigungen das Kontrollkästchen Administratoreinwilligung für openid- und offline_access-Berechtigungen erteilen.Under Permissions, select the Grant admin consent to openid and offline_access permissions check box.
    9. Wählen Sie Registrieren.Select Register.

    Aktivieren Sie nach Abschluss der Anwendungsregistrierung den Ablauf zur impliziten Gewährung:Once the application registration is complete, enable the implicit grant flow:

    1. Wählen Sie unter Verwalten die Option Authentifizierung aus.Under Manage, select Authentication.
    2. Wählen Sie Neue Benutzeroberfläche ausprobieren aus (sofern die Option angezeigt wird).Select Try out the new experience (if shown).
    3. Aktivieren Sie unter Implizite Genehmigung die Kontrollkästchen Zugriffstoken und ID-Token.Under Implicit grant, select both the Access tokens and ID tokens check boxes.
    4. Wählen Sie Speichern aus.Select Save.
  • Verwenden Sie Fiddler, um den Austausch von Nachrichten zwischen Ihrem Clientbrowser und Azure AD B2C nachzuverfolgen.To trace the exchange of messages between your client browser and Azure AD B2C, use Fiddler. So erhalten Sie Hinweise dazu, an welcher Stelle für Ihre User Journey in den Orchestrierungsschritten ein Fehler auftritt.It can help you get an indication of where your user journey is failing in your orchestration steps.

  • Verwenden Sie im Entwicklungsmodus die Anwendung Application Insights, um die Aktivität Ihrer User Journey für Identity Experience Framework nachzuverfolgen.In Development mode, use Application Insights to trace the activity of your Identity Experience Framework user journey. Im Entwicklungsmodus können Sie den Austausch von Ansprüchen zwischen dem Identity Experience Framework und den unterschiedlichen Anspruchsanbietern verfolgen, die anhand von technischen Profilen definiert werden, z. B. Identitätsanbieter, API-basierte Dienste, Azure AD B2C-Benutzerverzeichnis und andere Dienste wie Azure Multi-Factor Authentication.In Development mode, you can observe the exchange of claims between the Identity Experience Framework and the various claims providers that are defined by technical profiles, such as identity providers, API-based services, the Azure AD B2C user directory, and other services, like Azure Multi-Factor Authentication.

Halten Sie mehrere Versionen Ihrer Szenarien vor. Gruppieren Sie sie mit Ihrer Anwendung in einem Projekt.Keep multiple versions of your scenarios. Group them in a project with your application. Die Basisdateien, Dateien mit Erweiterungen und Dateien der vertrauenden Seite sind direkt voneinander abhängig.The base, extensions, and relying party files are directly dependent on each other. Speichern Sie sie als Gruppe.Save them as a group. Wenn Ihren Richtlinien neue Features hinzugefügt werden, ist es ratsam, separate Arbeitsversionen zu verwenden.As new features are added to your policies, keep separate working versions. Stellen Sie Arbeitsversionen in Ihrem eigenen Dateisystem mit dem Anwendungscode für die Interaktion bereit.Stage working versions in your own file system with the application code they interact with. Es kann sein, dass Ihre Anwendungen für einen Mandanten viele verschiedene Richtlinien der vertrauenden Seite aufrufen.Your applications might invoke many different relying party policies in a tenant. Diese können unter Umständen eine Abhängigkeit von den Ansprüchen entwickeln, die sie von Ihren Azure AD B2C-Richtlinien erwarten.They might become dependent on the claims that they expect from your Azure AD B2C policies.

Entwickeln und testen Sie technische Profile mit bekannten User Journeys.Develop and test technical profiles with known user journeys. Verwenden Sie getestete Starter Pack-Richtlinien, um Ihre technischen Profile einzurichten.Use tested starter pack policies to set up your technical profiles. Testen Sie diese separat, bevor Sie sie in Ihre eigenen User Journeys einbinden.Test them separately before you incorporate them into your own user journeys.

Entwickeln und testen Sie User Journeys mit getesteten technischen Profilen.Develop and test user journeys with tested technical profiles. Ändern Sie die Orchestrierungsschritte einer User Journey inkrementell.Change the orchestration steps of a user journey incrementally. Erstellen Sie Ihre gewünschten Szenarien auf progressive Weise.Progressively build your intended scenarios.

Nächste SchritteNext steps

Laden Sie von GitHub das ZIP-Archiv active-directory-b2c-custom-policy-starterpack herunter.Available on GitHub, download the active-directory-b2c-custom-policy-starterpack .zip archive. Sie können das Repository auch klonen:You can also clone the repository:

git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack