ContentDefinitions
Anteckning
I Azure Active Directory B2C är anpassade principer främst utformade för att hantera komplexa scenarier. I de flesta fall rekommenderar vi att du använder inbyggda användarflöden. Om du inte har gjort det kan du läsa mer om startpaketet för anpassade principer i Kom igång med anpassade principer i Active Directory B2C.
Du kan anpassa utseendet och känslan för valfri självbetitlade tekniska profiler. Azure Active Directory B2C (Azure AD B2C) kör kod i kundens webbläsare och använder en modern metod som kallas Resursdelning för korsande ursprung (CORS).
Om du vill anpassa användargränssnittet anger du en URL i elementet ContentDefinition med anpassat HTML-innehåll. I den självsäkra tekniska profilen eller OrchestrationStep pekar du på den innehållsdefinitionsidentifieraren. Innehållsdefinitionen kan innehålla elementet LocalizedResourcesReferences som anger en lista över lokaliserade resurser som ska läsas in. Azure AD B2C sammanfogar användargränssnittets element med HTML-innehåll som läses in från din URL och visar sedan sidan för användaren.
Elementet ContentDefinitions innehåller URL:er till HTML5-mallar som kan användas under en användarresa. HTML5-sidans URI används för ett angivet användargränssnittssteg. Till exempel inloggnings- eller registrerings-, lösenordsåterställnings- eller felsidorna. Du kan ändra utseendet genom att åsidosätta LoadUri för HTML5-filen. Du kan skapa nya innehållsdefinitioner efter dina behov. Det här elementet kan innehålla en referens för lokaliserade resurser till den lokaliseringsidentifierare som anges i elementet Lokalisering .
I följande exempel visas innehållsdefinitionsidentifieraren och definitionen av lokaliserade resurser:
<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" />
...
Metadata för den självsäkra tekniska profilen LocalAccountSignUpWithLogonEmail innehåller innehållsdefinitionsidentifieraren ContentDefinitionReferenceId inställd på 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>
...
ContentDefinition
Elementet ContentDefinition innehåller följande attribut:
Attribut | Krävs | Beskrivning |
---|---|---|
Id | Yes | En identifierare för en innehållsdefinition. Värdet är ett som anges i avsnittet Innehållsdefinitions-ID senare på den här sidan. |
Elementet ContentDefinition innehåller följande element:
Element | Händelser | Description |
---|---|---|
LoadUri | 1:1 | En sträng som innehåller URL:en för HTML5-sidan för innehållsdefinitionen. |
RecoveryUri | 1:1 | En sträng som innehåller URL:en för HTML-sidan för att visa ett fel som rör innehållsdefinitionen. För närvarande används inte värdet ~/common/default_page_error.html . |
DataUri | 1:1 | En sträng som innehåller den relativa URL:en för en HTML-fil som ger användarupplevelsen att anropa för steget. |
Metadata | 0:1 | En samling nyckel/värde-par som innehåller de metadata som används av innehållsdefinitionen. |
LocalizedResourcesReferences | 0:1 | En samling lokaliserade resursreferenser. Använd det här elementet för att anpassa lokaliseringen av ett användargränssnitt och anspråksattribut. |
LoadUri
LoadUri-elementet används för att ange URL:en för HTML5-sidan för innehållsdefinitionen. Startpaketen för Azure AD B2C-anpassade principer har innehållsdefinitioner som använder Azure AD B2C HTML-sidor.
LoadUri börjar med ~
, vilket är en relativ sökväg till din Azure AD B2C-klientorganisation.
<ContentDefinition Id="api.signuporsignin">
<LoadUri>~/tenant/templates/AzureBlue/unified.cshtml</LoadUri>
...
</ContentDefinition>
Du kan anpassa användargränssnittet med HTML-mallar. När du använder HTML-mallar anger du en absolut URL. I följande exempel visas en innehållsdefinition med HTML-mall:
<ContentDefinition Id="api.signuporsignin">
<LoadUri>https://your-storage-account.blob.core.windows.net/your-container/customize-ui.html</LoadUri>
...
</ContentDefinition>
DataUri
DataUri-elementet används för att ange sididentifieraren. Azure AD B2C använder sididentifieraren för att läsa in och initiera gränssnittselement och JavaScript på klientsidan. Formatet för värdet är urn:com:microsoft:aad:b2c:elements:page-name:version
. I följande tabell visas de sididentifierare som du kan använda.
Sididentifierare | Description |
---|---|
globalexception |
Visar en felsida när ett undantag eller ett fel påträffas. |
providerselection , idpselection |
Visar en lista över de identitetsprovidrar som användarna kan välja mellan under inloggningen. |
unifiedssp |
Visar ett formulär för att logga in med ett lokalt konto som baseras på en e-postadress eller ett användarnamn. Det här värdet innehåller också länken "Behåll inloggningsfunktionen" och "Har du glömt ditt lösenord?". |
unifiedssd |
Visar ett formulär för att logga in med ett lokalt konto som baseras på en e-postadress eller ett användarnamn. Den här sididentifieraren är inaktuell.
unifiedssp Använd sididentifieraren i stället. |
multifactor |
Verifierar telefonnummer med hjälp av text eller röst under registrering eller inloggning. |
selfasserted |
Visar ett formulär för att samla in data från en användare. Gör det till exempel möjligt för användare att skapa eller uppdatera sin profil. |
Välj en sidlayout
Du kan aktivera JavaScript-kod på klientsidan genom att contract
infoga mellan elements
och sidtypen. Till exempel urn:com:microsoft:aad:b2c:elements:contract:page-name:version
.
Versionsdelen av DataUri
anger paketet med innehåll som innehåller HTML, CSS och JavaScript för användargränssnittselementen i principen. Om du tänker aktivera JavaScript-kod på klientsidan måste de element som du baserar JavaScript på vara oföränderliga. Om de inte är oföränderliga kan ändringar orsaka oväntat beteende på användarsidorna. Du kan förhindra dessa problem genom att använda en sidlayout och ange en sidlayoutversion. Detta säkerställer att alla innehållsdefinitioner som du har baserat JavaScript på är oföränderliga. Även om du inte tänker aktivera JavaScript måste du fortfarande ange sidlayoutversionen för dina sidor.
I följande exempel visas DataUriselfasserted
för 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> -->
Migrera till sidlayout
Om du vill migrera från det gamla DataUri-värdet (utan sidkontrakt) till sidlayoutversionen lägger du till ordet contract
efter en sidversion. Använd följande tabell för att migrera från det gamla DataUri-värdet till sidlayoutversionen.
Gammalt DataUri-värde | Nytt DataUri-värde |
---|---|
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 |
I följande exempel visas identifierare för innehållsdefinition och motsvarande DataUri med den senaste sidversionen:
<!--
<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> -->
Metadata
Ett metadataelement innehåller följande element:
Element | Occurrences | Description |
---|---|---|
Objekt | 0:n | Metadata som relaterar till innehållsdefinitionen. |
Elementet Item i metadataelementet innehåller följande attribut:
Attribut | Krävs | Beskrivning |
---|---|---|
Nyckel | Yes | Metadatanyckeln. |
Metadatanycklar
Innehållsdefinition stöder följande metadataobjekt:
Nyckel | Krävs | Beskrivning |
---|---|---|
DisplayName | No | En sträng som innehåller namnet på innehållsdefinitionen. |
LocalizedResourcesReferences
Elementet LocalizedResourcesReferences innehåller följande element:
Element | Händelser | Description |
---|---|---|
LocalizedResourcesReference | 1:n | En lista över lokaliserade resursreferenser för innehållsdefinitionen. |
Elementet LocalizedResourcesReference innehåller följande attribut:
Attribut | Krävs | Beskrivning |
---|---|---|
Språk | Yes | En sträng som innehåller ett språk som stöds för principen per RFC 5646 – Taggar för att identifiera språk. |
LocalizedResourcesReferenceId | Yes | Identifieraren för elementet LocalizedResources . |
I följande exempel visas en innehållsdefinition för registrering eller inloggning med en referens till lokalisering för engelska, franska och spanska:
<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>
Information om hur du lägger till lokaliseringsstöd för innehållsdefinitioner finns i Lokalisering.
Innehållsdefinitions-ID:t
ID-attributet för ContentDefinition-elementet anger vilken typ av sida som relaterar till innehållsdefinitionen. Elementet definierar kontexten som en anpassad HTML5/CSS-mall ska tillämpas på. I följande tabell beskrivs den uppsättning innehållsdefinitions-ID:t som identifieras av Identity Experience Framework och de sidtyper som är relaterade till dem. Du kan skapa egna innehållsdefinitioner med ett godtyckligt ID.
ID | Standardmall | Description |
---|---|---|
api.error | exception.cshtml | Felsida – Visar en felsida när ett undantag eller ett fel påträffas. |
api.idpselections | idpSelector.cshtml | Sidan för val av identitetsprovider – Visar en lista över identitetsprovidrar som användarna kan välja mellan under inloggningen. Alternativen är vanligtvis företagsidentitetsleverantörer, sociala identitetsprovidrar som Facebook och Google+, eller lokala konton. |
api.idpselections.signup | idpSelector.cshtml | Val av identitetsprovider för registrering – Visar en lista över identitetsprovidrar som användarna kan välja mellan under registreringen. Alternativen är vanligtvis företagsidentitetsleverantörer, sociala identitetsprovidrar som Facebook och Google+, eller lokala konton. |
api.localaccountpasswordreset | selfasserted.cshtml | Sidan Glömt lösenord – Visar ett formulär som användarna måste fylla i för att initiera en lösenordsåterställning. |
api.localaccountsignin | selfasserted.cshtml | Inloggningssida för lokalt konto – Visar ett formulär för inloggning med ett lokalt konto som baseras på en e-postadress eller ett användarnamn. Formuläret kan innehålla en textinmatningsruta och en lösenordspostruta. |
api.localaccountsignup | selfasserted.cshtml | Registreringssida för lokalt konto – Visar ett formulär för att registrera dig för ett lokalt konto som baseras på en e-postadress eller ett användarnamn. Formuläret kan innehålla olika indatakontroller, till exempel: en textinmatningsruta, en lösenordspostruta, en alternativknapp, listrutor med enkelmarkering och kryssrutor med flera markeringar. |
api.phonefactor | multifaktor-1.0.0.cshtml | Multifaktorautentiseringssida – Verifierar telefonnummer med hjälp av text eller röst, under registrering eller inloggning. |
api.selfasserted | selfasserted.cshtml | Registreringssida för sociala konton – Visar ett formulär som användarna måste fylla i när de registrerar sig med hjälp av ett befintligt konto från en social identitetsprovider. Den här sidan liknar registreringssidan för det sociala kontot ovan, förutom lösenordsinmatningsfälten. |
api.selfasserted.profileupdate | updateprofile.cshtml | Profiluppdateringssida – Visar ett formulär som användarna kan komma åt för att uppdatera sin profil. Den här sidan liknar registreringssidan för sociala konton, förutom lösenordsfälten. |
api.signuporsignin | unified.cshtml | Enhetlig registrerings- eller inloggningssida – Hanterar användarens registrering och inloggningsprocess. Användare kan använda företagsidentitetsleverantörer, sociala identitetsprovidrar som Facebook eller Google+ eller lokala konton. |
Nästa steg
Ett exempel på hur du anpassar användargränssnittet med hjälp av innehållsdefinitioner finns i:
Anpassa användargränssnittet för ditt program med hjälp av en anpassad princip