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 DataUriverze 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 selfasserted1.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