Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".
Прежде чем начать, используйте селектор типа политики в верхней части этой страницы, чтобы выбрать тип политики, которую вы настроите. Azure Active Directory B2C предлагает два метода определения способа взаимодействия пользователей с вашими приложениями: с помощью предопределенных потоков пользователей или полностью настраиваемых пользовательских политик. Действия, которые необходимо выполнить, отличаются для каждого метода.
С помощью шаблонов HTML Azure Active Directory B2C (Azure AD B2C) вы можете создавать возможности идентификации пользователей. Шаблоны HTML могут содержать только определенные html-теги и атрибуты. Разрешены основные теги HTML, такие как <b>, i<, >u<, ><h1> и <hr>. Более сложные теги, такие как <скрипт> и <iframe> , удаляются по соображениям безопасности, но <script>
тег должен быть добавлен в <head>
тег. Начиная с версий макета страницы selfasserted 2.1.21, unifiedssp 2.1.10 и многофакторной 1.2.10, B2C не поддерживает добавление скриптов в тег <body>
(так как это может представлять угрозу для межсайтовых скриптовых атак). Миграция существующих скриптов с <body>
на <head>
может время от времени требовать перезаписи существующих сценариев с помощью наблюдателей мутаций для правильной работы.
<script>
Тег должен быть добавлен в <head>
тег двумя способами:
defer
Добавление атрибута, указывающего, что скрипт загружается параллельно с анализом страницы, затем скрипт выполняется после завершения анализа страницы:<script src="my-script.js" defer></script>
Добавление
async
атрибута, указывающего, что скрипт скачан параллельно с анализом страницы, скрипт выполняется сразу после того, как он будет доступен (перед завершением синтаксического анализа):<script src="my-script.js" async></script>
Чтобы включить JavaScript и расширенные HTML-теги и атрибуты, выполните следующие действия.
- Выбор макета страницы
- Включите его в потоке пользователя с помощью портала Azure
- Используйте b2clogin.com в запросах
- Выбор макета страницы
- Добавление элемента в настраиваемую политику
- Используйте b2clogin.com в запросах
Предпосылки
- Создайте поток пользователя, чтобы пользователи могли зарегистрироваться и входить в ваше приложение.
- Зарегистрируйте веб-приложение.
- Выполните действия, описанные в статье "Начало работы с настраиваемыми политиками в Active Directory B2C". В этом руководстве описано, как обновить пользовательские файлы политики для использования конфигурации клиента Azure AD B2C.
- Зарегистрируйте веб-приложение.
Начало настройки версии макета страницы
Если вы планируете включить клиентский код JavaScript, элементы, на основе которых вы пишете JavaScript, должны быть неизменными. Если они не являются неизменяемыми, любые изменения могут привести к непредвиденному поведению на страницах пользователей. Чтобы предотвратить эти проблемы, примените использование макета страницы и укажите версию макета страницы, чтобы убедиться, что определения контента на основе JavaScript неизменяемы. Даже если вы не планируете включить JavaScript, можно указать версию макета страницы для страниц.
Чтобы указать версию макета страниц для страниц потока пользователя, выполните указанные действия.
- В клиенте Azure AD B2C выберите потоки пользователей.
- Выберите политику (например, B2C_1_SignupSignin), чтобы открыть ее.
- Выберите макеты страниц. Выберите имя макета и выберите версию макета страницы.
Сведения о различных версиях макета страницы см. в журнале изменений версии макета страницы.
Чтобы указать версию макета страниц для страниц пользовательской политики, выполните следующие действия.
- Выберите макет страницы для элементов пользовательского интерфейса приложения.
- Определите версию макета страницы с версией страницы
contract
для всех определений контента в вашей пользовательской политике. Формат значения должен содержать словоcontract
: urn:com:microsoft:aad:b2c:elements:contract:page-name:version.
В следующем примере показаны идентификаторы определения контента и соответствующий DataUri с контрактом страницы:
<ContentDefinitions>
<ContentDefinition Id="api.error">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.idpselections">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.idpselections.signup">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.signuporsignin">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.selfasserted">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.selfasserted.profileupdate">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.localaccountsignup">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.localaccountpasswordreset">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.phonefactor">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.0</DataUri>
</ContentDefinition>
</ContentDefinitions>
Включение JavaScript
В свойствах потока пользователя можно включить JavaScript. Включение JavaScript также заставляет использовать макет страницы. Затем можно задать версию макета страницы для потока пользователя, как описано в следующем разделе.
Вы можете включить выполнение скрипта, добавив элемент ScriptExecution в элемент RelyingParty .
Откройте файл настраиваемой политики. Например, SignUpOrSignin.xml.
Добавьте элемент ScriptExecution в элемент RelyingParty :
<RelyingParty> <DefaultUserJourney ReferenceId="SignUpOrSignIn" /> <UserJourneyBehaviors> <ScriptExecution>Allow</ScriptExecution> </UserJourneyBehaviors> ... </RelyingParty>
Сохраните и отправьте файл.
Рекомендации по использованию JavaScript
Следуйте этим рекомендациям при настройке интерфейса приложения с помощью JavaScript:
- Не делайте:
- привязать событие щелчка к
<a>
ЭЛЕМЕНТАМ HTML. - взять зависимость от кода или комментариев Azure AD B2C.
- измените порядок или иерархию элементов HTML Azure AD B2C. Используйте политику Azure AD B2C для управления порядком элементов пользовательского интерфейса.
- привязать событие щелчка к
- Вы можете обратиться к любой службе RESTful, учитывая следующие факторы:
- Возможно, вам потребуется задать CORS службы RESTful, чтобы разрешить клиентские вызовы HTTP.
- Убедитесь, что служба RESTful безопасна и использует только протокол HTTPS.
- Не используйте JavaScript непосредственно для вызова конечных точек Azure AD B2C.
- Вы можете внедрить JavaScript или связаться с внешними файлами JavaScript. При использовании внешнего файла JavaScript обязательно используйте абсолютный URL-адрес, а не относительный URL-адрес.
- Платформы JavaScript:
- Azure AD B2C использует определенную версию jQuery. Не включайте другую версию jQuery. Использование нескольких версий на одной странице приводит к проблемам.
- Использование RequireJS не поддерживается.
- Большинство платформ JavaScript не поддерживаются Azure AD B2C.
- Параметры Azure AD B2C можно считывать путем вызова
window.SETTINGS
объектов,window.CONTENT
таких как текущий язык пользовательского интерфейса. Не изменяйте значение этих объектов. - Чтобы настроить сообщение об ошибке Azure AD B2C, используйте локализацию в политике.
- Если что-либо можно достичь с помощью политики, обычно это рекомендуемый способ.
- Мы рекомендуем использовать существующие элементы управления пользовательского интерфейса, такие как кнопки, а не скрывать их и реализовывать привязки щелчков на собственных элементах управления пользовательского интерфейса. Этот подход гарантирует, что взаимодействие с пользователем продолжает работать правильно, даже когда мы выпускаем обновления нового контракта страницы.
Примеры для JavaScript
Отображение или скрытие пароля
Распространенный способ помочь клиентам в успешной регистрации — разрешить им видеть, что они ввели в качестве пароля. Этот параметр помогает пользователям регистрироваться, позволяя им легко просматривать и вносить исправления в пароль при необходимости. В любом поле пароля типа установлен флажок с меткой "Показать пароль ". Это позволяет пользователю просматривать пароль в виде обычного текста. Добавьте этот фрагмент кода в шаблон регистрации или входа для самозаверяемой страницы:
function makePwdToggler(pwd){
// Create show-password checkbox
var checkbox = document.createElement('input');
checkbox.setAttribute('type', 'checkbox');
var id = pwd.id + 'toggler';
checkbox.setAttribute('id', id);
var label = document.createElement('label');
label.setAttribute('for', id);
label.appendChild(document.createTextNode('show password'));
var div = document.createElement('div');
div.appendChild(checkbox);
div.appendChild(label);
// Add show-password checkbox under password input
pwd.insertAdjacentElement('afterend', div);
// Add toggle password callback
function toggle(){
if(pwd.type === 'password'){
pwd.type = 'text';
} else {
pwd.type = 'password';
}
}
checkbox.onclick = toggle;
// For non-mouse usage
checkbox.onkeydown = toggle;
}
function setupPwdTogglers(){
var pwdInputs = document.querySelectorAll('input[type=password]');
for (var i = 0; i < pwdInputs.length; i++) {
makePwdToggler(pwdInputs[i]);
}
}
setupPwdTogglers();
Добавление условий использования
Добавьте следующий код на страницу, где необходимо включить флажок "Условия использования ". Этот флажок обычно необходим на страницах регистрации локальной учетной записи и социальной учетной записи.
function addTermsOfUseLink() {
// find the terms of use label element
var termsOfUseLabel = document.querySelector('#api label[for="termsOfUse"]');
if (!termsOfUseLabel) {
return;
}
// get the label text
var termsLabelText = termsOfUseLabel.innerHTML;
// create a new <a> element with the same inner text
var termsOfUseUrl = 'https://learn.microsoft.com/legal/termsofuse';
var termsOfUseLink = document.createElement('a');
termsOfUseLink.setAttribute('href', termsOfUseUrl);
termsOfUseLink.setAttribute('target', '_blank');
termsOfUseLink.appendChild(document.createTextNode(termsLabelText));
// replace the label text with the new element
termsOfUseLabel.replaceChild(termsOfUseLink, termsOfUseLabel.firstChild);
}
В коде замените termsOfUseUrl
ссылку на условия использования. В каталоге создайте новый атрибут пользователя с именем termsOfUse , а затем включите терминыOfUse в качестве атрибута пользователя.
Кроме того, можно добавить ссылку в нижней части самоутверждаемых страниц без использования JavaScript. Используйте следующую локализацию:
<LocalizedResources Id="api.localaccountsignup.en">
<LocalizedStrings>
<!-- The following elements will display a link at the bottom of the page. -->
<LocalizedString ElementType="UxElement" StringId="disclaimer_link_1_text">Terms of use</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="disclaimer_link_1_url">termsOfUseUrl</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
Замените termsOfUseUrl
ссылку на политику конфиденциальности и условия использования вашей организации.
Дальнейшие шаги
Дополнительные сведения о настройке пользовательского интерфейса приложения в Azure Active Directory B2C.