Поделиться через


ОпределенияКонтента

Это важно

Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".

Замечание

В Azure Active Directory B2C пользовательские политики преимущественно предназначены для выполнения сложных сценариев. В большинстве случаев рекомендуется использовать встроенные потоки пользователей. Ознакомьтесь со статьей Начало работы с настраиваемыми политиками в Azure Active Directory B2C, чтобы узнать о базовом пакете настраиваемых политик, если еще не сделали этого.

Вы можете настроить внешний вид и чувствовать себя любого самоутверждающего технического профиля. Azure Active Directory B2C (Azure AD B2C) выполняет код в браузере клиента и использует современный подход, называемый кросс-исходным доступом к ресурсам (CORS).

Чтобы настроить пользовательский интерфейс, укажите URL-адрес в элементе ContentDefinition с настраиваемым HTML-содержимым. В самоутверждающем техническом профиле или OrchestrationStep указываете на этот идентификатор определения содержимого. Определение содержимого может содержать элемент LocalizedResourcesReferences , указывающий список локализованных ресурсов для загрузки. Azure AD B2C объединяет элементы пользовательского интерфейса с HTML-содержимым, загруженным из URL-адреса, а затем отображает страницу пользователю.

Элемент ContentDefinitions содержит URL-адреса шаблонов HTML5, которые можно использовать в пути пользователя. URI страницы HTML5 используется для указанного шага пользовательского интерфейса. Например, страницы ошибок входа или регистрации, сброса пароля или страниц ошибок. Вы можете изменить внешний вид и чувствовать себя, переопределив LoadUri для HTML5-файла. Вы можете создавать новые определения контента в соответствии с вашими потребностями. Этот элемент может содержать ссылку на локализованные ресурсы, к идентификатору локализации, указанному в элементе "Локализация ".

В следующем примере показан идентификатор определения контента и определение локализованных ресурсов:

<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" />
    ...

Метаданные локального технического профиля LocalAccountSignUpWithLogonEmail содержат идентификатор определения содержимого ContentDefinitionReferenceId , равный 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 (Определение содержимого)

Элемент ContentDefinition содержит следующий атрибут:

Свойство Обязательно Описание
Идентификатор Да Идентификатор определения контента. Значение является одним из указанных в разделе идентификаторов определения контента далее на этой странице.

Элемент ContentDefinition содержит следующие элементы:

Элемент Вхождения Описание
LoadUri 1:1 Строка, содержащая URL-адрес страницы HTML5 для определения содержимого.
RecoveryUri 1:1 Строка, содержащая URL-адрес HTML-страницы для отображения ошибки, связанной с определением содержимого. В настоящее время значение должно быть ~/common/default_page_error.htmlне использовано.
DataUri 1:1 Строка, содержащая относительный URL-адрес HTML-файла, который предоставляет пользователю возможность вызова для шага.
Метаданные 00:14 Коллекция пар "ключ-значение", содержащих метаданные, используемые определением содержимого.
ЛокализованныеРесурсыСсылки 00:14 Коллекция ссылок на локализованные ресурсы. Используйте этот элемент для настройки локализации пользовательского интерфейса и атрибута утверждений.

LoadUri

Элемент LoadUri используется для указания URL-адреса страницы HTML5 для определения содержимого. Начальные пакеты пользовательской политики Azure AD B2C содержат определения содержимого, использующие HTML-страницы Azure AD B2C. LoadUri начинается с ~, который является относительным путем к клиенту Azure AD B2C.

<ContentDefinition Id="api.signuporsignin">
  <LoadUri>~/tenant/templates/AzureBlue/unified.cshtml</LoadUri>
  ...
</ContentDefinition>

Пользовательский интерфейс можно настроить с помощью шаблонов HTML. При использовании шаблонов HTML укажите абсолютный URL-адрес. В следующем примере показано определение содержимого с помощью шаблона HTML:

<ContentDefinition Id="api.signuporsignin">
  <LoadUri>https://your-storage-account.blob.core.windows.net/your-container/customize-ui.html</LoadUri>
  ...
</ContentDefinition>

DataUri

Элемент DataUri используется для указания идентификатора страницы. Azure AD B2C использует идентификатор страницы для загрузки и запуска элементов пользовательского интерфейса и клиентской стороны JavaScript. Формат значения .urn:com:microsoft:aad:b2c:elements:page-name:version В следующей таблице перечислены идентификаторы страниц, которые можно использовать.

Идентификатор страницы Описание
globalexception Отображает страницу ошибки при обнаружении исключения или ошибки.
providerselection, idpselection Выводит список поставщиков удостоверений, которые пользователи могут выбирать во время входа.
unifiedssp Отображает форму для входа с помощью локальной учетной записи, основанной на адресе электронной почты или имени пользователя. Это значение также предоставляет ссылку "Сохранить функцию входа в систему" и "Забыл пароль?".
unifiedssd Отображает форму для входа с помощью локальной учетной записи, основанной на адресе электронной почты или имени пользователя. Этот идентификатор страницы устарел. unifiedssp Вместо этого используйте идентификатор страницы.
multifactor Проверяет номера телефонов с помощью текста или голоса во время регистрации или входа.
selfasserted Отображает форму для сбора данных от пользователя. Например, позволяет пользователям создавать или обновлять свой профиль.

Выбор макета страницы

Вы можете включить клиентский код JavaScript , вставляя contract между elements и типом страницы. Например: urn:com:microsoft:aad:b2c:elements:contract:page-name:version.

Часть DataUri определяет пакет содержимого, содержащего HTML, CSS и JavaScript для элементов пользовательского интерфейса в политике. Если вы планируете включить клиентский код JavaScript, элементы, на основе которых вы пишете JavaScript, должны быть неизменными. Если они не являются неизменяемыми, любые изменения могут привести к непредвиденному поведению на страницах пользователей. Чтобы предотвратить эти проблемы, необходимо применить макет страницы и указать версию макета страницы. Это гарантирует, что все определения контента на основе JavaScript неизменяемы. Даже если вы не планируете включить JavaScript, вам по-прежнему необходимо указать версию макета страницы для страниц.

В следующем примере показан dataUriselfasserted версии 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> -->

Перенос на макет страницы

Чтобы перейти из старого значения DataUri (без контракта страницы) на версию макета страницы, добавьте слово contract , следующее за версией страницы. Используйте следующую таблицу для миграции со старого значения DataUri на версию макета страницы.

Старое значение DataUri Новое значение 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

В следующем примере показаны идентификаторы определения контента и соответствующий DataUri с последней версией страницы:

<!-- 
<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> -->

Метаданные

Элемент метаданных содержит следующие элементы:

Элемент Вхождения Описание
Товар 0:n Метаданные, относящиеся к определению содержимого.

Элемент Item элемента метаданных содержит следующие атрибуты:

Свойство Обязательно Описание
Ключ Да Ключ метаданных.

Ключи метаданных

Определение содержимого поддерживает следующие элементы метаданных:

Ключ Обязательно Описание
Отображаемое имя нет Строка, содержащая имя определения содержимого.

ЛокализованныеРесурсыСсылки

Элемент LocalizedResourcesReferences содержит следующие элементы:

Элемент Вхождения Описание
ЛокализованныеРесурсыСправка 1:n Список локализованных ссылок на ресурсы для определения контента.

Элемент LocalizedResourcesReference содержит следующие атрибуты:

Свойство Обязательно Описание
Язык Да Строка, содержащая поддерживаемый язык для политики на RFC 5646 — теги для идентификации языков.
LocalizedResourcesReferenceId (Идентификатор ссылки) Да Идентификатор элемента LocalizedResources .

В следующем примере показано определение содержимого регистрации или входа с ссылкой на локализацию для английского, французского и испанского языков:

<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>

Сведения о добавлении поддержки локализации в определения контента см. в статье "Локализация".

Идентификаторы определения содержимого

Атрибут ID элемента ContentDefinition указывает тип страницы, связанной с определением контента. Элемент определяет контекст, который будет применять пользовательский шаблон HTML5/CSS. В следующей таблице описывается набор идентификаторов определений контента, распознаваемых платформой удостоверений и типами страниц, связанными с ними. Вы можете создать собственные определения контента с произвольным идентификатором.

Идентификатор Шаблон по умолчанию Описание
api.error исключение.cshtml Страница ошибки — отображает страницу ошибки при обнаружении исключения или ошибки.
api.idpselections idpSelector.cshtml Страница выбора поставщика удостоверений — список поставщиков удостоверений, которые пользователи могут выбрать во время входа. Варианты обычно являются корпоративными поставщиками удостоверений, поставщиками социальных удостоверений, такими как Facebook и Google+, или локальными учетными записями.
api.idpselections.signup idpSelector.cshtml Выбор поставщика удостоверений для регистрации — список поставщиков удостоверений, которые пользователи могут выбрать во время регистрации. Варианты обычно являются корпоративными поставщиками удостоверений, поставщиками социальных удостоверений, такими как Facebook и Google+, или локальными учетными записями.
api.localaccountpasswordreset selfasserted.cshtml Страница "Забыл пароль " — отображает форму, которую пользователи должны завершить для запуска сброса пароля.
api.localaccountsignin selfasserted.cshtml Страница входа в локальную учетную запись — отображает форму входа с помощью локальной учетной записи, основанной на адресе электронной почты или имени пользователя. Форма может содержать текстовое поле ввода и поле ввода пароля.
api.localaccountзарегистрироваться selfasserted.cshtml Страница регистрации локальной учетной записи — отображает форму регистрации для локальной учетной записи, основанной на адресе электронной почты или имени пользователя. Форма может содержать различные элементы управления входными данными, такие как текстовое поле, поле ввода пароля, переключатель, раскрывающийся список с одним выделением и флажки с несколькими выборами.
api.phonefactor multifactor-1.0.0.cshtml Страница многофакторной проверки подлинности — проверяет номера телефонов с помощью текста или голоса во время регистрации или входа.
api.selfasserted selfasserted.cshtml Страница регистрации учетной записи социальных сетей — отображает форму, которую пользователи должны выполнить при регистрации с помощью существующей учетной записи у поставщика удостоверений социальных сетей. Эта страница похожа на предыдущую страницу регистрации учетной записи социальной сети, за исключением полей ввода пароля.
api.selfasserted.profileupdate файл updateprofile.cshtml Страница обновления профиля — отображает форму, доступ к которым пользователи могут получить для обновления своего профиля. Эта страница похожа на страницу регистрации учетной записи социальной сети, за исключением полей ввода пароля.
api.signuporsignin unified.cshtml Страница единой регистрации или входа . Обрабатывает процесс регистрации и входа пользователя. Пользователи могут использовать корпоративные поставщики удостоверений, поставщики удостоверений социальных сетей, такие как Facebook или Google+, или локальные учетные записи.

Дальнейшие шаги

Пример настройки пользовательского интерфейса с помощью определений содержимого см. в следующих статье:

Настройка пользовательского интерфейса приложения с помощью пользовательской политики