Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.
Hinweis
In Azure Active Directory B2C sind benutzerdefinierte Richtlinien in erster Linie für komplexe Szenarien konzipiert. Für die meisten Szenarien empfehlen wir die Verwendung von integrierten Benutzerflows. Informieren Sie sich, sofern noch nicht geschehen, unter Tutorial: Erstellen von Benutzerflows und benutzerdefinierten Richtlinien in Azure Active Directory B2C über das Starter Pack für benutzerdefinierte Richtlinien.
Sie können das Aussehen und Verhalten jedes selbstbesetzten technischen Profils anpassen. Azure Active Directory B2C (Azure AD B2C) führt Code im Browser Ihres Kunden aus und verwendet einen modernen Ansatz namens Cross-Origin Resource Sharing (CORS).
Zum Anpassen der Benutzeroberfläche geben Sie eine URL im ContentDefinition-Element mit angepasstem HTML-Inhalt an. Im selbst bestätigten technischen Profil oder OrchestrationStep verweisen Sie auf diesen Inhaltsdefinitionsbezeichner. Die Inhaltsdefinition kann ein LocalizedResourcesReferences-Element enthalten, das eine Liste lokalisierter Ressourcen angibt, die geladen werden sollen. Azure AD B2C führt Benutzeroberflächenelemente mit dem HTML-Inhalt zusammen, der aus Ihrer URL geladen wird, und zeigt dann die Seite dem Benutzer an.
Das ContentDefinitions-Element enthält URLs zu HTML5-Vorlagen, die in einer Benutzerreise verwendet werden können. Der HTML5-Seiten-URI wird für einen angegebenen Benutzeroberflächenschritt verwendet. Beispielsweise die Anmelde- oder Anmeldeseite, das Zurücksetzen von Kennwörtern oder Fehlerseiten. Sie können das Erscheinungsbild ändern, indem Sie den LoadUri für die HTML5-Datei überschreiben. Sie können neue Inhaltsdefinitionen entsprechend Ihren Anforderungen erstellen. Dieses Element kann einen lokalisierten Ressourcenverweis auf den Lokalisierungsbezeichner enthalten, der im Lokalisierungselement angegeben ist.
Das folgende Beispiel zeigt den Inhaltsdefinitionsbezeichner und die Definition lokalisierter Ressourcen:
<ContentDefinition Id="api.localaccountsignup">
<LoadUri>~/tenant/default/selfAsserted.cshtml</LoadUri>
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:selfasserted:1.1.0</DataUri>
<Metadata>
<Item Key="DisplayName">Local account sign up page</Item>
</Metadata>
<LocalizedResourcesReferences MergeBehavior="Prepend">
<LocalizedResourcesReference Language="en" LocalizedResourcesReferenceId="api.localaccountsignup.en" />
<LocalizedResourcesReference Language="es" LocalizedResourcesReferenceId="api.localaccountsignup.es" />
...
Die Metadaten des self-asserted-technischen Profils "LocalAccountSignUpWithLogonEmail " enthalten den Inhaltsdefinitionsbezeichner "ContentDefinitionReferenceId ", der auf api.localaccountsignup
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
<DisplayName>Email signup</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ContentDefinitionReferenceId">api.localaccountsignup</Item>
...
</Metadata>
...
InhaltsDefinition
Das ContentDefinition-Element enthält das folgende Attribut:
| Merkmal | Erforderlich | BESCHREIBUNG |
|---|---|---|
| Id | Ja | Ein Bezeichner für eine Inhaltsdefinition. Der Wert ist im Abschnitt "Inhaltsdefinitions-IDs " weiter unten auf dieser Seite angegeben. |
Das ContentDefinition-Element enthält die folgenden Elemente:
| Element | Vorkommen | BESCHREIBUNG |
|---|---|---|
| LoadUri | 1:1 | Eine Zeichenfolge, die die URL der HTML5-Seite für die Inhaltsdefinition enthält. |
| RecoveryUri | 1:1 | Eine Zeichenfolge, die die URL der HTML-Seite enthält, um einen Fehler im Zusammenhang mit der Inhaltsdefinition anzuzeigen. Zurzeit nicht verwendet, muss der Wert sein ~/common/default_page_error.html. |
| DataUri | 1:1 | Eine Zeichenfolge, die die relative URL einer HTML-Datei enthält, die die Benutzeroberfläche zum Aufrufen für den Schritt bereitstellt. |
| Metadaten | 0:1 | Eine Sammlung von Schlüssel-Wert-Paaren, die die von der Inhaltsdefinition verwendeten Metadaten enthalten. |
| LocalizedResourcesReferences | 0:1 | Eine Sammlung lokalisierter Ressourcenverweise. Verwenden Sie dieses Element, um die Lokalisierung einer Benutzeroberfläche und eines Anspruchsattributs anzupassen. |
LoadUri
Das LoadUri-Element wird verwendet, um die URL der HTML5-Seite für die Inhaltsdefinition anzugeben. Die benutzerdefinierten Azure AD B2C-Richtlinienstartpakete enthalten Inhaltsdefinitionen, die Azure AD B2C-HTML-Seiten verwenden. Der LoadUri beginnt mit ~einem relativen Pfad zu Ihrem Azure AD B2C-Mandanten.
<ContentDefinition Id="api.signuporsignin">
<LoadUri>~/tenant/templates/AzureBlue/unified.cshtml</LoadUri>
...
</ContentDefinition>
Sie können die Benutzeroberfläche mit HTML-Vorlagen anpassen. Stellen Sie bei verwendung von HTML-Vorlagen eine absolute URL bereit. Das folgende Beispiel veranschaulicht eine Inhaltsdefinition mit HTML-Vorlage:
<ContentDefinition Id="api.signuporsignin">
<LoadUri>https://your-storage-account.blob.core.windows.net/your-container/customize-ui.html</LoadUri>
...
</ContentDefinition>
DataUri
Das DataUri-Element wird verwendet, um den Seitenbezeichner anzugeben. Azure AD B2C verwendet den Seitenbezeichner zum Laden und Initiieren von UI-Elementen und clientseitigem JavaScript. Das Format des Werts lautet urn:com:microsoft:aad:b2c:elements:page-name:version. In der folgenden Tabelle sind die Seitenbezeichner aufgeführt, die Sie verwenden können.
| Seitenbezeichner | BESCHREIBUNG |
|---|---|
globalexception |
Zeigt eine Fehlerseite an, wenn eine Ausnahme oder ein Fehler aufgetreten ist. |
providerselection, idpselection |
Listet die Identitätsanbieter auf, aus denen Benutzer während der Anmeldung auswählen können. |
unifiedssp |
Zeigt ein Formular für die Anmeldung mit einem lokalen Konto an, das auf einer E-Mail-Adresse oder einem Benutzernamen basiert. Dieser Wert enthält auch den Link "Anmeldefunktionen beibehalten" und "Kennwort vergessen?". |
unifiedssd |
Zeigt ein Formular für die Anmeldung mit einem lokalen Konto an, das auf einer E-Mail-Adresse oder einem Benutzernamen basiert. Dieser Seitenbezeichner ist veraltet. Verwenden Sie stattdessen den unifiedssp Seitenbezeichner. |
multifactor |
Überprüft Telefonnummern mithilfe von Text oder Sprache während der Registrierung oder Anmeldung. |
selfasserted |
Zeigt ein Formular zum Sammeln von Daten von einem Benutzer an. Ermöglicht benutzern beispielsweise das Erstellen oder Aktualisieren ihres Profils. |
Auswählen eines Seitenlayouts
Sie können clientseitigen JavaScript-Code aktivieren, indem Sie zwischen contract und dem Seitentyp einfügenelements. Beispiel: urn:com:microsoft:aad:b2c:elements:contract:page-name:version.
Der Versionsteil des DataUri Specifies the package of content containing HTML, CSS, and JavaScript for the user interface elements in your policy. Wenn Sie den clientseitigen JavaScript-Code aktivieren möchten, müssen die Elemente, auf denen Sie JavaScript basieren, unveränderlich sein. Wenn sie nicht unveränderlich sind, können Änderungen zu unerwartetem Verhalten auf Ihren Benutzerseiten führen. Um diese Probleme zu verhindern, erzwingen Sie die Verwendung eines Seitenlayouts, und geben Sie eine Seitenlayoutversion an. Dadurch wird sichergestellt, dass alle Inhaltsdefinitionen, auf denen Sie JavaScript basieren, unveränderlich sind. Auch wenn Sie nicht beabsichtigen, JavaScript zu aktivieren, müssen Sie dennoch die Seitenlayoutversion für Ihre Seiten angeben.
Das folgende Beispiel zeigt den DataUri der selfasserted Version 1.2.0:
<!--
<BuildingBlocks>
<ContentDefinitions>-->
<ContentDefinition Id="api.localaccountpasswordreset">
<LoadUri>~/tenant/templates/AzureBlue/selfAsserted.cshtml</LoadUri>
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
<Metadata>
<Item Key="DisplayName">Local account change password page</Item>
</Metadata>
</ContentDefinition>
<!--
</ContentDefinitions>
</BuildingBlocks> -->
Migrieren zum Seitenlayout
Um vom alten DataUri-Wert (ohne Seitenvertrag) zur Seitenlayoutversion zu migrieren, fügen Sie das Wort contract gefolgt von einer Seitenversion hinzu. Verwenden Sie die folgende Tabelle, um vom alten DataUri-Wert zur Seitenlayoutversion zu migrieren.
| Alter DataUri-Wert | Neuer DataUri-Wert |
|---|---|
urn:com:microsoft:aad:b2c:elements:globalexception:1.0.0 |
urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.1 |
urn:com:microsoft:aad:b2c:elements:globalexception:1.1.0 |
urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.1 |
urn:com:microsoft:aad:b2c:elements:idpselection:1.0.0 |
urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.1 |
urn:com:microsoft:aad:b2c:elements:selfasserted:1.0.0 |
urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.7 |
urn:com:microsoft:aad:b2c:elements:selfasserted:1.1.0 |
urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.7 |
urn:com:microsoft:aad:b2c:elements:unifiedssd:1.0.0 |
urn:com:microsoft:aad:b2c:elements:contract:unifiedssd:1.2.1 |
urn:com:microsoft:aad:b2c:elements:unifiedssp:1.0.0 |
urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.5 |
urn:com:microsoft:aad:b2c:elements:unifiedssp:1.1.0 |
urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.5 |
urn:com:microsoft:aad:b2c:elements:multifactor:1.0.0 |
urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.5 |
urn:com:microsoft:aad:b2c:elements:multifactor:1.1.0 |
urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.5 |
Das folgende Beispiel zeigt die Inhaltsdefinitions-IDs und den entsprechenden DataUri mit der neuesten Seitenversion:
<!--
<BuildingBlocks> -->
<ContentDefinitions>
<ContentDefinition Id="api.error">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.1</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.idpselections">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.1</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.idpselections.signup">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.1</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.signuporsignin">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.7</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.selfasserted">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.14</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.selfasserted.profileupdate">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.14</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.localaccountsignup">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.14</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.localaccountpasswordreset">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.14</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.phonefactor">
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.5</DataUri>
</ContentDefinition>
</ContentDefinitions>
<!--
</BuildingBlocks> -->
Metadaten
Ein Metadata-Element enthält die folgenden Elemente:
| Element | Vorkommen | BESCHREIBUNG |
|---|---|---|
| Gegenstand | 0:n | Die Metadaten, die sich auf die Inhaltsdefinition beziehen. |
Das Element "Item " des Metadatenelements enthält die folgenden Attribute:
| Merkmal | Erforderlich | BESCHREIBUNG |
|---|---|---|
| Schlüssel | Ja | Der Metadatenschlüssel. |
Metadatenschlüssel
Die Inhaltsdefinition unterstützt die folgenden Metadatenelemente:
| Schlüssel | Erforderlich | BESCHREIBUNG |
|---|---|---|
| Anzeigename | Nein | Eine Zeichenfolge, die den Namen der Inhaltsdefinition enthält. |
LocalizedResourcesReferences
Das LocalizedResourcesReferences-Element enthält die folgenden Elemente:
| Element | Vorkommen | BESCHREIBUNG |
|---|---|---|
| LocalizedResourcesReference | 1:n | Eine Liste der lokalisierten Ressourcenverweise für die Inhaltsdefinition. |
Das LocalizedResourcesReference-Element enthält die folgenden Attribute:
| Merkmal | Erforderlich | BESCHREIBUNG |
|---|---|---|
| Sprache | Ja | Eine Zeichenfolge, die eine unterstützte Sprache für die Richtlinie pro RFC 5646 - Tags für die Identifizierung von Sprachen enthält. |
| LocalizedResourcesReferenceId | Ja | Der Bezeichner des LocalizedResources-Elements . |
Das folgende Beispiel zeigt eine Registrierungs- oder Anmeldeinhaltsdefinition mit einem Verweis auf die Lokalisierung für Englisch, Französisch und Spanisch:
<ContentDefinition Id="api.signuporsignin">
<LoadUri>~/tenant/default/unified.cshtml</LoadUri>
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:unifiedssp:1.0.0</DataUri>
<Metadata>
<Item Key="DisplayName">Signin and Signup</Item>
</Metadata>
<LocalizedResourcesReferences MergeBehavior="Prepend">
<LocalizedResourcesReference Language="en" LocalizedResourcesReferenceId="api.signuporsignin.en" />
<LocalizedResourcesReference Language="fr" LocalizedResourcesReferenceId="api.signuporsignin.rf" />
<LocalizedResourcesReference Language="es" LocalizedResourcesReferenceId="api.signuporsignin.es" />
</LocalizedResourcesReferences>
</ContentDefinition>
Informationen zum Hinzufügen von Lokalisierungsunterstützung zu Ihren Inhaltsdefinitionen finden Sie unter Lokalisierung.
Inhaltsdefinitions-IDs
Das ID-Attribut des ContentDefinition-Elements gibt den Typ der Seite an, die sich auf die Inhaltsdefinition bezieht. Das Element definiert den Kontext, den eine benutzerdefinierte HTML5/CSS-Vorlage anwenden soll. Die folgende Tabelle beschreibt den Satz von Inhaltsdefinitions-IDs, die vom Identity Experience Framework erkannt werden, und die Seitentypen, die sie betreffen. Sie können eigene Inhaltsdefinitionen mit einer beliebigen ID erstellen.
| Identifikationsnummer | Standardvorlage | BESCHREIBUNG |
|---|---|---|
| api.Fehler | exception.cshtml | Fehlerseite – Zeigt eine Fehlerseite an, wenn eine Ausnahme oder ein Fehler aufgetreten ist. |
| api.idpselections | idpSelector.cshtml | Seite "Identitätsanbieterauswahl" – Listet Identitätsanbieter auf, aus denen Benutzer während der Anmeldung auswählen können. Die Optionen sind in der Regel Unternehmensidentitätsanbieter, Social Identity-Anbieter wie Facebook und Google+ oder lokale Konten. |
| api.idpselections.anmeldung | idpSelector.cshtml | Identitätsanbieterauswahl für die Registrierung – Listet Identitätsanbieter auf, aus denen Benutzer während der Registrierung auswählen können. Die Optionen sind in der Regel Unternehmensidentitätsanbieter, Social Identity-Anbieter wie Facebook und Google+ oder lokale Konten. |
| api.localaccountpasswordzurücksetzen | selfasserted.cshtml | Seite "Kennwort vergessen" – Zeigt ein Formular an, das benutzer ausfüllen müssen, um eine Kennwortzurücksetzung zu initiieren. |
| api.localaccountsignin | selfasserted.cshtml | Anmeldeseite für lokales Konto – Zeigt ein Formular für die Anmeldung mit einem lokalen Konto an, das auf einer E-Mail-Adresse oder einem Benutzernamen basiert. Das Formular kann ein Texteingabefeld und ein Kennworteingabefeld enthalten. |
| api.localaccountanmeldung | selfasserted.cshtml | Anmeldeseite für lokale Konten – Zeigt ein Formular für die Registrierung für ein lokales Konto an, das auf einer E-Mail-Adresse oder einem Benutzernamen basiert. Das Formular kann verschiedene Eingabesteuerelemente enthalten, z. B. ein Texteingabefeld, ein Kennworteingabefeld, ein Optionsfeld, Einauswahl-Dropdownfelder und Mehrfachauswahlkontrollkästchen. |
| api.phonefactor | multifactor-1.0.0.cshtml | Seite mit mehrstufiger Authentifizierung – Überprüft Telefonnummern mithilfe von Text oder Sprache während der Registrierung oder Anmeldung. |
| api.selfasserted | selfasserted.cshtml | Anmeldeseite für soziale Netzwerke – Zeigt ein Formular an, das Benutzer ausfüllen müssen, wenn sie sich mit einem vorhandenen Konto von einem Anbieter für soziale Netzwerke anmelden. Diese Seite ähnelt der vorherigen Anmeldeseite für soziale Netzwerke, mit Ausnahme der Kennworteingabefelder. |
| api.selfasserted.profileupdate | UpdateProfile.cshtml | Profilaktualisierungsseite – Zeigt ein Formular an, auf das Benutzer zugreifen können, um ihr Profil zu aktualisieren. Diese Seite ähnelt der Registrierungsseite für das soziale Konto, mit Ausnahme der Kennworteingabefelder. |
| api.signuporsignin | unified.cshtml | Einheitliche Registrierungs- oder Anmeldeseite – Behandelt die Benutzeranmeldung und den Anmeldevorgang. Benutzer können Unternehmensidentitätsanbieter, Social Identity-Anbieter wie Facebook oder Google+ oder lokale Konten verwenden. |
Nächste Schritte
Ein Beispiel zum Anpassen der Benutzeroberfläche mithilfe von Inhaltsdefinitionen finden Sie unter:
Anpassen der Benutzeroberfläche Ihrer Anwendung mithilfe einer benutzerdefinierten Richtlinie