ContentDefinitions
Poznámka
V Azure Active Directory B2C jsou vlastní zásady navržené primárně tak, aby řešily složité scénáře. Ve většině scénářů doporučujeme používat předdefinované toky uživatelů. Pokud jste to neudělali, přečtěte si informace o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami v Active Directory B2C.
Vzhled a chování libovolného technického profilu s vlastním uplatněním můžete přizpůsobit. Azure Active Directory B2C (Azure AD B2C) spouští kód v prohlížeči zákazníka a používá moderní přístup označovaný jako sdílení prostředků mezi zdroji (CORS).
Chcete-li přizpůsobit uživatelské rozhraní, zadejte adresu URL v ContentDefinition element s přizpůsobeným obsahem HTML. V technickém profilu s vlastním tvrzením nebo OrchestrationStep přejděte na tento identifikátor definice obsahu. Definice obsahu může obsahovat LocalizedResourcesReferences element, který určuje seznam lokalizovaných prostředků k načtení. Azure AD B2C sloučí prvky uživatelského rozhraní s obsahem HTML načteným z adresy URL a zobrazí stránku uživateli.
Element ContentDefinitions obsahuje adresy URL šablon HTML5, které lze použít v cestě uživatele. Identifikátor URI stránky HTML5 se používá pro zadaný krok uživatelského rozhraní. Například přihlašovací nebo registrační, resetování hesla nebo chybové stránky. Vzhled a chování můžete změnit přepsáním LoadUri souboru HTML5. Podle svých potřeb můžete vytvářet nové definice obsahu. Tento prvek může obsahovat odkaz na lokalizované prostředky na lokalizační identifikátor zadaný v elementu Localization .
Následující příklad ukazuje identifikátor definice obsahu a definici lokalizovaných prostředků:
<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 vlastního technického profilu LocalAccountSignUpWithLogonEmail obsahují identifikátor definice obsahu ContentDefinitionReferenceId nastavený na 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>
...
Definice obsahu
Element ContentDefinition obsahuje následující atribut:
Atribut | Povinné | Popis |
---|---|---|
Id | Yes | Identifikátor definice obsahu. Hodnota je hodnota zadaná v části ID definic obsahu dále na této stránce. |
Element ContentDefinition obsahuje následující prvky:
Prvek | Výskyty | Popis |
---|---|---|
Identifikátor LoadURI | 1:1 | Řetězec, který obsahuje adresu URL stránky HTML5 pro definici obsahu. |
Identifikátor RECOVERYURI | 1:1 | Řetězec, který obsahuje adresu URL stránky HTML pro zobrazení chyby související s definicí obsahu. Aktuálně se nepoužívá, hodnota musí být ~/common/default_page_error.html . |
Identifikátor DataUri | 1:1 | Řetězec, který obsahuje relativní adresu URL souboru HTML, který poskytuje uživatelské prostředí pro vyvolání kroku. |
Metadata | 0:1 | Kolekce párů klíč/hodnota, která obsahuje metadata užitá definicí obsahu. |
LocalizedResourcesReferences | 0:1 | Kolekce odkazů na lokalizované prostředky. Pomocí tohoto elementu můžete přizpůsobit lokalizaci uživatelského rozhraní a atributu deklarací identity. |
Identifikátor LoadURI
Element LoadUri slouží k určení adresy URL stránky HTML5 pro definici obsahu. Úvodní balíčky vlastních zásad Azure AD B2C se dodávají s definicemi obsahu, které používají Azure AD stránky HTML B2C.
LoadUri začíná na ~
, což je relativní cesta k vašemu tenantovi Azure AD B2C.
<ContentDefinition Id="api.signuporsignin">
<LoadUri>~/tenant/templates/AzureBlue/unified.cshtml</LoadUri>
...
</ContentDefinition>
Uživatelské rozhraní můžete přizpůsobit pomocí šablon HTML. Při použití šablon HTML zadejte absolutní adresu URL. Následující příklad ukazuje definici obsahu pomocí šablony HTML:
<ContentDefinition Id="api.signuporsignin">
<LoadUri>https://your-storage-account.blob.core.windows.net/your-container/customize-ui.html</LoadUri>
...
</ContentDefinition>
Identifikátor DataUri
Element DataUri slouží k určení identifikátoru stránky. Azure AD B2C používá identifikátor stránky k načtení a inicializaci prvků uživatelského rozhraní a JavaScriptu na straně klienta. Formát hodnoty je urn:com:microsoft:aad:b2c:elements:page-name:version
. Následující tabulka uvádí identifikátory stránek, které můžete použít.
Identifikátor stránky | Description |
---|---|
globalexception |
Zobrazí chybovou stránku, když dojde k výjimce nebo chybě. |
providerselection , idpselection |
Uvádí seznam zprostředkovatelů identity, ze kterého si uživatelé můžou vybrat při přihlašování. |
unifiedssp |
Zobrazí formulář pro přihlášení pomocí místního účtu, který je založený na e-mailové adrese nebo uživatelském jménu. Tato hodnota také poskytuje odkaz "Zachovat funkci přihlašování" a "Zapomněli jste heslo?". |
unifiedssd |
Zobrazí formulář pro přihlášení pomocí místního účtu, který je založený na e-mailové adrese nebo uživatelském jménu. Tento identifikátor stránky je zastaralý. Místo toho unifiedssp použijte identifikátor stránky. |
multifactor |
Ověřuje telefonní čísla pomocí textové zprávy nebo hlasu během registrace nebo přihlášení. |
selfasserted |
Zobrazí formulář pro shromažďování dat od uživatele. Například umožňuje uživatelům vytvořit nebo aktualizovat svůj profil. |
Vybrat rozložení stránky
JavaScriptový kód na straně klienta můžete povolit vložením contract
mezi elements
a typ stránky. Například, urn:com:microsoft:aad:b2c:elements:contract:page-name:version
.
Část DataUri
verze určuje balíček obsahu, který obsahuje HTML, CSS a JavaScript pro prvky uživatelského rozhraní ve vašich zásadách. Pokud máte v úmyslu povolit javascriptový kód na straně klienta, musí být elementy, na kterých je JavaScript založený, neměnné. Pokud nejsou neměnné, jakékoli změny by mohly způsobit neočekávané chování na uživatelských stránkách. Chcete-li těmto problémům zabránit, vynucujte použití rozložení stránky a zadejte verzi rozložení stránky. Tím se zajistí, že všechny definice obsahu, na které jste zakládají JavaScript, budou neměnné. I když javascript nechcete povolit, musíte pro stránky zadat verzi rozložení stránky.
Následující příklad ukazuje Identifikátor DataUri verze selfasserted
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> -->
Migrace na rozložení stránky
Pokud chcete migrovat ze staré hodnoty DataUri (bez kontraktu stránky) na verzi rozložení stránky, přidejte slovo contract
za verzí stránky. Pomocí následující tabulky můžete migrovat ze staré hodnoty DataUri na verzi rozložení stránky.
Stará hodnota DataUri | Nová hodnota DataUri |
---|---|
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 |
Následující příklad ukazuje identifikátory definice obsahu a odpovídající Identifikátor DataUri s nejnovější verzí stránky:
<!--
<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
Element Metadata obsahuje následující prvky:
Prvek | Výskyty | Popis |
---|---|---|
Položka | 0:n | Metadata, která se vztahují k definici obsahu. |
Element Item elementu Metadata obsahuje následující atributy:
Atribut | Povinné | Popis |
---|---|---|
Klíč | Yes | Klíč metadat. |
Klíče metadat
Definice obsahu podporuje následující položky metadat:
Klíč | Povinné | Popis |
---|---|---|
DisplayName | No | Řetězec, který obsahuje název definice obsahu. |
LocalizedResourcesReferences
Element LocalizedResourcesReferences obsahuje následující prvky:
Prvek | Výskyty | Description |
---|---|---|
LocalizedResourcesReference | 1:n | Seznam odkazů na lokalizované prostředky pro definici obsahu. |
Element LocalizedResourcesReference obsahuje následující atributy:
Atribut | Povinné | Popis |
---|---|---|
Jazyk | Yes | Řetězec, který obsahuje podporovaný jazyk pro zásadu podle RFC 5646 – Značky pro identifikaci jazyků. |
LocalizedResourcesReferenceId | Yes | Identifikátor Prvku LocalizedResources . |
Následující příklad ukazuje definici obsahu registrace nebo přihlášení s odkazem na lokalizaci pro angličtinu, francouzštinu a španělštinu:
<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>
Informace o tom, jak přidat podporu lokalizace do definic obsahu, najdete v tématu Lokalizace.
ID definic obsahu
Atribut ID ContentDefinition elementu určuje typ stránky, která souvisí s definicí obsahu. Element definuje kontext, který použije vlastní šablona HTML5/CSS. Následující tabulka popisuje sadu ID definic obsahu, která je rozpoznána rozhraním Identity Experience Framework, a typy stránek, které se k nim vztahují. Můžete vytvořit vlastní definice obsahu s libovolným ID.
ID | Výchozí šablona | Popis |
---|---|---|
api.error | exception.cshtml | Chybová stránka – zobrazí chybovou stránku, když dojde k výjimce nebo chybě. |
api.idpselections | idpSelector.cshtml | Stránka výběru zprostředkovatele identity – zobrazí seznam zprostředkovatelů identity, ze kterého si uživatelé můžou vybrat během přihlašování. Tyto možnosti jsou obvykle zprostředkovatelé podnikových identit, zprostředkovatelé sociálních identit, jako jsou Facebook a Google+, nebo místní účty. |
api.idpselections.signup | idpSelector.cshtml | Výběr zprostředkovatele identity pro registraci – Zobrazí seznam zprostředkovatelů identity, ze kterého si uživatelé můžou vybrat během registrace. Tyto možnosti jsou obvykle zprostředkovatelé podnikových identit, zprostředkovatelé sociálních identit, jako jsou Facebook a Google+, nebo místní účty. |
api.localaccountpasswordreset | selfasserted.cshtml | Stránka Zapomenuté heslo – zobrazí formulář, který musí uživatelé vyplnit, aby zahájili resetování hesla. |
api.localaccountsignin | selfasserted.cshtml | Přihlašovací stránka místního účtu – Zobrazí formulář pro přihlášení pomocí místního účtu, který je založený na e-mailové adrese nebo uživatelském jménu. Formulář může obsahovat textové vstupní pole a pole pro zadání hesla. |
api.localaccountsignup | selfasserted.cshtml | Registrační stránka místního účtu – zobrazí formulář pro registraci místního účtu, který je založený na e-mailové adrese nebo uživatelském jménu. Formulář může obsahovat různé ovládací prvky zadávání, například textové pole pro zadání, pole pro zadání hesla, přepínač, rozevírací pole s jedním výběrem a zaškrtávací políčka s vícenásobným výběrem. |
api.phonefactor | multifactor-1.0.0.cshtml | Stránka vícefaktorového ověřování – ověřuje telefonní čísla pomocí textu nebo hlasu během registrace nebo přihlášení. |
api.selfasserted | selfasserted.cshtml | Registrační stránka účtu sociální sítě – zobrazí formulář, který musí uživatelé vyplnit, když se zaregistrují pomocí existujícího účtu od zprostředkovatele sociální identity. Tato stránka se podobá předchozí přihlašovací stránce účtu sociální sítě s výjimkou polí pro zadání hesla. |
api.selfasserted.profileupdate | updateprofile.cshtml | Stránka aktualizace profilu – zobrazí formulář, ke kterému mají uživatelé přístup, aby mohli aktualizovat svůj profil. Tato stránka se podobá přihlašovací stránce účtu sociální sítě s výjimkou polí pro zadání hesla. |
api.signuporsignin | unified.cshtml | Sjednocená registrace nebo přihlašovací stránka – zpracovává proces registrace a přihlášení uživatele. Uživatelé můžou používat zprostředkovatele podnikových identit, zprostředkovatele sociálních identit, jako je Facebook nebo Google+, nebo místní účty. |
Další kroky
Příklad přizpůsobení uživatelského rozhraní pomocí definic obsahu najdete tady:
Přizpůsobení uživatelského rozhraní aplikace pomocí vlastních zásad