Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".
Прежде чем начать, используйте селектор типа политики в верхней части этой страницы, чтобы выбрать тип политики, которую вы настроите. Azure Active Directory B2C предлагает два метода определения способа взаимодействия пользователей с вашими приложениями: с помощью предопределенных потоков пользователей или полностью настраиваемых пользовательских политик. Действия, которые необходимо выполнить, отличаются для каждого метода.
В пути регистрации и входа пользователь может сбросить свой пароль с помощью ссылки Forgot your password? Этот поток самостоятельного сброса пароля применяется к локальным учетным записям в Azure Active Directory B2C (Azure AD B2C), которые используют адрес электронной почты или имя пользователя с паролем для входа.
Подсказка
Пользователь может изменить свой пароль с помощью потока самостоятельного сброса пароля, если он забыл свой пароль и хочет его сбросить. Вы также можете выбрать один из следующих вариантов потока пользователя, чтобы изменить пароль пользователя:
- Если пользователь знает свой пароль и хочет изменить его, используйте поток изменения пароля.
- Если вы хотите принудительно сбросить пароль пользователя (например, при первом входе, когда пароли были сброшены администратором или после миграции в Azure AD B2C с использованием случайных паролей), используйте процесс принудительного сброса паролей.
Поток сброса пароля включает в себя следующие действия.
- На странице регистрации и входа пользователь выбирает ссылку Forgot your password? Azure AD B2C инициирует поток сброса пароля.
- В появившемся диалоговом окне пользователь вводит свой адрес электронной почты, а затем выбирает код проверки отправки. Azure AD B2C отправляет код проверки в учетную запись электронной почты пользователя. Пользователь копирует код проверки из сообщения электронной почты, вводит код в диалоговом окне сброса пароля Azure AD B2C, а затем выбирает код проверки.
- Затем пользователь может ввести новый пароль. (После проверки сообщения электронной почты пользователь по-прежнему может выбрать кнопку "Изменить электронную почту "; если вы хотите удалить ее, см. раздел "Скрыть сообщение электронной почты ".
Имя кнопки "Изменить электронную почту" по умолчанию в selfAsserted.html — changeclaims. Чтобы найти имя кнопки, на странице регистрации проверьте источник страницы с помощью средства браузера, такого как Проверка.
Предпосылки
- Создайте поток пользователя, чтобы пользователи могли зарегистрироваться и входить в ваше приложение.
- Зарегистрируйте веб-приложение.
- Выполните действия, описанные в статье "Начало работы с настраиваемыми политиками в Active Directory B2C". В этом руководстве описано, как обновить пользовательские файлы политики для использования конфигурации клиента Azure AD B2C.
- Зарегистрируйте веб-приложение.
- Пользователи B2C должны иметь метод проверки подлинности, указанный для самостоятельного сброса пароля. Выберите пользователя B2C в меню слева в разделе "Управление" выберите методы проверки подлинности. Убедитесь, что заданы контактные данные аутентификации. Пользователи B2C, созданные с помощью потока регистрации, имеют этот параметр по умолчанию. Для пользователей, созданных с помощью портала Azure или API Graph, необходимо задать контактные данные проверки подлинности для работы SSPR.
Самостоятельный сброс пароля (рекомендуется)
Теперь новый интерфейс сброса пароля является частью политики регистрации или входа. Когда пользователь выбирает ссылку Forgot your password? он сразу же отправляется в интерфейс forgot Password. Приложение больше не должно обрабатывать код ошибки AADB2C90118, и для сброса пароля не требуется отдельная политика.
Возможность самостоятельного сброса пароля может быть настроена для сценариев "Вход" (рекомендуется) или "Регистрация и вход" (рекомендуется). Если у вас нет одного из этих потоков пользователей, создайте поток регистрации или входа .
Чтобы настроить сброс пароля в режиме самообслуживания в процессе регистрации или входа в систему:
- Войдите на портал Azure.
- Если у вас есть доступ к нескольким клиентам, щелкните значок Настройки в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню Каталоги и подписки.
- В портале Azure найдите и выберите Azure AD B2C.
- Выберите потоки пользователей.
- Выберите рекомендуемый процесс регистрации или входа типа, который требуется настроить.
- В меню в разделе "Параметры" выберите "Свойства".
- В разделе "Конфигурация пароля" выберите самостоятельный сброс пароля.
- Выберите Сохранить.
- В меню слева в разделе "Настройка" выберите макеты страниц.
- В версии макета страницы выберите 2.1.3 или более поздней версии.
- Выберите Сохранить.
В следующих разделах описывается, как добавить возможность самостоятельного управления паролями в настраиваемую политику. Пример основан на файлах политики, включенных в начальный пакет пользовательской политики.
Подсказка
Полный пример политики регистрации и входа с помощью политики сброса пароля можно найти на сайте GitHub.
Укажите, что пользователь выбрал ссылку Забыли пароль?
Чтобы сообщить политике, что пользователь выбрал ссылку Forgot your password?, определите логическое утверждение. Используйте утверждение для направления пути пользователя к техническому профилю "Забыл пароль ". Утребование также может быть выдано токену, поэтому приложение обнаруживает, что пользователь вошел в систему через поток "Восстановление пароля".
Объявите утверждения в схеме утверждений. Откройте файл расширений политики, например в SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
Найдите элемент BuildingBlocks . Если элемент не существует, добавьте его.
Найдите элемент ClaimsSchema . Если элемент не существует, добавьте его.
Добавьте следующее утверждение в элемент ClaimsSchema .
<!-- <BuildingBlocks> <ClaimsSchema> --> <ClaimType Id="isForgotPassword"> <DisplayName>isForgotPassword</DisplayName> <DataType>boolean</DataType> <AdminHelpText>Whether the user has selected Forgot your Password</AdminHelpText> </ClaimType> <!-- </ClaimsSchema> </BuildingBlocks> -->
Обновление версии макета страницы
Версия макета страницы 2.1.2 необходима для включения функции самостоятельного сброса пароля в процессе регистрации или входа. Чтобы обновить версию макета страницы, выполните следующие действия.
Откройте базовый файл политики, например SocialAndLocalAccounts/TrustFrameworkBase.xml.
Найдите элемент BuildingBlocks . Если элемент не существует, добавьте его.
Найдите элемент ContentDefinitions . Если элемент не существует, добавьте его.
Измените элемент DataURI в элементе ContentDefinition , чтобы иметь идентификатор
api.signuporsignin:<!-- <BuildingBlocks> <ContentDefinitions> --> <ContentDefinition Id="api.signuporsignin"> <DataUri>urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.2</DataUri> </ContentDefinition> <!-- </ContentDefinitions> </BuildingBlocks> -->
Добавление технических профилей
Технический профиль преобразования утверждений обращается к утверждению isForgotPassword . На технический профиль ссылаются позже. Когда он вызывается, это задаёт значение isForgotPassword для утверждения true.
- Откройте файл расширений политики, например в SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
- Найдите элемент ClaimsProviders (если элемент не существует, создайте его), а затем добавьте следующий поставщик утверждений:
<!--
<ClaimsProviders> -->
<ClaimsProvider>
<DisplayName>Local Account</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="ForgotPassword">
<DisplayName>Forgot your password?</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isForgotPassword" DefaultValue="true" AlwaysUseDefaultValue="true"/>
</OutputClaims>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
<Metadata>
<Item Key="setting.forgotPasswordLinkOverride">ForgotPasswordExchange</Item>
</Metadata>
</TechnicalProfile>
<TechnicalProfile Id="LocalAccountWritePasswordUsingObjectId">
<UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<!--
</ClaimsProviders> -->
Параметр технического профиля SelfAsserted-LocalAccountSignin-Email.forgotPasswordLinkOverride определяет обмен утверждениями сброса пароля, который выполняется в пути пользователя.
Диспетчер сеансов LocalAccountWritePasswordUsingObjectId технического профиля UseTechnicalProfileForSessionManagementSM-AAD необходим для пользователя для успешного осуществления последующих входов в условиях SSO.
Добавить подпроцесс сброса пароля
Теперь пользователь может войти, зарегистрироваться и выполнить сброс пароля в вашем пользовательском интерфейсе. Чтобы лучше организовать путь пользователя, можно использовать вспомогательный путь для обработки процесса сброса пароля.
Подпутешествие вызывается из пользовательского пути и выполняет конкретные шаги, которые предоставляют пользователю опыт сброса пароля. Используйте подпутешествие Call типа, чтобы после завершения подпутешествия управление возвращалось к шагу оркестровки, инициировавшему это подпутешествие.
- Откройте файл расширений политики, например SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
- Найдите элемент SubJourneys . Если элемент не существует, добавьте его после элемента User Journeys . Затем добавьте следующее подпутешествие:
<!--
<SubJourneys>-->
<SubJourney Id="PasswordReset" Type="Call">
<OrchestrationSteps>
<!-- Validate user's email address. -->
<OrchestrationStep Order="1" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="PasswordResetUsingEmailAddressExchange" TechnicalProfileReferenceId="LocalAccountDiscoveryUsingEmailAddress" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- Collect and persist a new password. -->
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="NewCredentials" TechnicalProfileReferenceId="LocalAccountWritePasswordUsingObjectId" />
</ClaimsExchanges>
</OrchestrationStep>
</OrchestrationSteps>
</SubJourney>
<!--
</SubJourneys>-->
Подготовка пользовательского опыта
Затем, чтобы связать ссылку Forgot your password? с подмаршрутом Forgot Password, необходимо сослаться на идентификатор подмаршрута Forgot Password в элементе ClaimsProviderSelection шага CombinedSignInAndSignUp.
Если у вас нет собственного пользовательского пути с шагом CombinedSignInAndSignUp, выполните следующие действия, чтобы дублировать существующий путь пользователя для регистрации или входа. В противном случае перейдите к следующему разделу.
- В начальном пакете откройте файлTrustFrameworkBase.xml , например SocialAndLocalAccounts/TrustFrameworkBase.xml.
- Найдите и скопируйте все содержимое элемента UserJourney , который включает в себя
Id="SignUpOrSignIn". - Откройте файлTrustFrameworkExtensions.xml , например SocialAndLocalAccounts/TrustFrameworkExtensions.xml, и найдите элемент UserJourneys . Если элемент не существует, создайте его.
- Создайте дочерний элемент элемента UserJourneys , вставив все содержимое элемента UserJourney , скопированного на шаге 2.
- Переименуйте идентификатор пути взаимодействия пользователя. Например:
Id="CustomSignUpSignIn".
Подключите ссылку "Забыл пароль" к подпути "Забыл пароль"
В пользовательском пути следует представить подпутешествие "Забыли пароль" как ClaimsProviderSelection. Добавив этот элемент, вы связываете ссылку Забыли пароль? с подэтапом восстановления пароля.
Откройте файл TrustFrameworkExtensions.xml , например SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
В пути взаимодействия пользователя найдите элемент шага оркестрации, включающий
Type="CombinedSignInAndSignUp"илиType="ClaimsProviderSelection". Обычно это первый шаг оркестрации. Элемент ClaimsProviderSelections содержит список поставщиков удостоверений, которые пользователь может использовать для входа. Добавьте следующую строку:<ClaimsProviderSelection TargetClaimsExchangeId="ForgotPasswordExchange" />На следующем шаге оркестрации добавьте элемент ClaimsExchange , добавив следующую строку:
<ClaimsExchange Id="ForgotPasswordExchange" TechnicalProfileReferenceId="ForgotPassword" />Добавьте следующий шаг оркестрации между текущим шагом и следующим шагом. Новый шаг оркестрации, который вы добавили, проверяет, существует ли утверждение isForgotPassword . Если утверждение существует, оно вызывает подпроцесс сброса пароля.
<OrchestrationStep Order="3" Type="InvokeSubJourney"> <Preconditions> <Precondition Type="ClaimsExist" ExecuteActionsIf="false"> <Value>isForgotPassword</Value> <Action>SkipThisOrchestrationStep</Action> </Precondition> </Preconditions> <JourneyList> <Candidate SubJourneyReferenceId="PasswordReset" /> </JourneyList> </OrchestrationStep>После добавления нового шага оркестрации перенумеруйте шаги последовательно, не пропуская целые числа от 1 до N.
Установите пользовательскую последовательность для выполнения
Теперь, когда вы изменили или создали путешествие пользователя в разделе проверяющей стороны , укажите путешествие, которое Azure AD B2C будет выполнять для этой настраиваемой политики.
Откройте файл с элементом Проверяющей стороны , например SocialAndLocalAccounts/SignUpOrSignin.xml.
В элементе RelyingParty найдите элемент DefaultUserJourney .
Обновите ReferenceId DefaultUserJourney так, чтобы он соответствовал идентификатору пути пользователя, в который вы добавили ClaimsProviderSelections.
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Укажите, как встроить процесс восстановления пароля в ваше приложение.
Возможно, приложению потребуется определить, вошел ли пользователь с помощью потока пользователя Forgot Password. Утверждение isForgotPassword содержит логическое значение, указывающее, что они сделали. Утверждение может быть выдано в токене, который отправляется в ваше приложение. При необходимости добавьте isForgotPassword в выходные утверждения в разделе проверяющей стороны . Приложение может проверить утверждение isForgotPassword, чтобы определить, сбрасывает ли пользователь свой пароль.
<RelyingParty>
<OutputClaims>
...
<OutputClaim ClaimTypeReferenceId="isForgotPassword" DefaultValue="false" />
</OutputClaims>
</RelyingParty>
Отправка настраиваемой политики
- Войдите на портал Azure.
- Если у вас есть доступ к нескольким клиентам, щелкните значок "Параметры " в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок .
- В портале Azure найдите и выберите Azure AD B2C.
- В меню в разделе Политики выберите Фреймворк опыта идентификации.
- Выберите " Отправить настраиваемую политику". В следующем порядке отправьте измененные файлы политики:
- Базовый файл политики, например TrustFrameworkBase.xml.
- Политика расширения, например TrustFrameworkExtensions.xml.
- Политика проверяющей стороны, например SignUpSignIn.xml.
Скрыть кнопку "Изменить сообщение электронной почты" (необязательно)
После проверки сообщения электронной почты пользователь по-прежнему может выбрать изменение электронной почты, ввести другой адрес электронной почты и повторить проверку электронной почты. Если вы предпочитаете скрыть кнопку "Изменить электронную почту" , можно изменить CSS, чтобы скрыть связанные элементы HTML в диалоговом окне. Например, можно добавить следующую запись CSS для selfAsserted.html и настроить пользовательский интерфейс с помощью шаблонов HTML:
<style type="text/css">
.changeClaims
{
visibility: hidden;
}
</style>
Тестирование потока сброса пароля
- Выберите поток пользователей для регистрации или входа в систему (рекомендуемого типа), который требуется протестировать.
- Выберите Запустить пользовательский сценарий.
- Для приложения выберите веб-приложение с именем webapp1 , зарегистрированное ранее. В поле URL-адрес ответа должно содержаться значение
https://jwt.ms. - Выберите Запустить пользовательский сценарий.
- На странице регистрации или входа выберите "Забыл пароль?".
- Проверьте адрес электронной почты созданной ранее учетной записи и нажмите кнопку "Продолжить".
- В открывшемся диалоговом окне измените пароль пользователя и нажмите кнопку "Продолжить". Маркер возвращается
https://jwt.msи браузер отображает его. - Проверьте значение претензии токена возврата isForgotPassword. Если он существует и задан
true, пользователь сбросил пароль.
Политика сброса пароля (устаревшая версия)
Если функция самостоятельного сброса пароля не включена, нажатие на эту ссылку не запустит процесс сброса пароля для пользователя автоматически. Вместо этого код AADB2C90118 ошибки возвращается приложению. Ваше приложение должно обрабатывать этот код ошибки, повторно инициализируя библиотеку аутентификации для процесса сброса пароля Azure AD B2C.
На следующей схеме показан процесс:
- В приложении пользователь выбирает вход. Приложение инициирует запрос авторизации и перенаправляется в Azure AD B2C, чтобы пользователь смог завершить вход. Запрос авторизации указывает имя политики регистрации или входа, например B2C_1_signup_signin.
- Пользователь выбирает ссылку Forgot your password? Azure AD B2C возвращает
AADB2C90118код ошибки приложению. - Приложение обрабатывает код ошибки и инициирует новый запрос авторизации. Запрос авторизации указывает имя политики сброса пароля, например B2C_1_pwd_reset.
В нашем примере ASP.NET можно увидеть базовую демонстрацию связи потоков пользователей.
Создайте поток для пользователя для сброса пароля
Чтобы разрешить пользователям приложения сбрасывать пароли, создайте пользовательский поток для сброса пароля.
- На портале Azure перейдите к обзору клиента Azure AD B2C.
- В меню слева в разделе "Политики" выберите потоки пользователей и выберите новый поток пользователя.
- В Создание потока пользователя выберите поток сброса пароля.
- В разделе "Выбор версии" выберите "Рекомендуется" и нажмите кнопку "Создать".
- Для Имя введите имя для потока пользователя. Например, passwordreset1.
- Для поставщиков удостоверений включите сброс пароля с помощью имени пользователя или сброса пароля с помощью адреса электронной почты.
- В разделе Многофакторная проверка подлинности, если требуется, чтобы пользователи проверяли свои удостоверения с помощью второго метода проверки подлинности, выберите тип метода и когда необходимо применить многофакторную проверку подлинности. Подробнее.
- Если вы настроили политики условного доступа для клиента Azure AD B2C и хотите использовать их в этом потоке пользователя, установите флажок "Применить политики условного доступа". Вам не нужно указывать имя политики. Подробнее.
- В разделе "Утверждения приложения" выберите "Показать больше". Выберите утверждения, которые вы хотите вернуть в токены авторизации, которые отправляются обратно в ваше приложение. Например, выберите идентификатор объекта пользователя.
- Нажмите ОК.
- Нажмите кнопку "Создать", чтобы добавить поток пользователя. Префикс B2C_1 автоматически добавляется в имя.
Тестирование потока пользователя
Чтобы протестировать поток пользователя, выполните следующие действия.
- Выберите пользовательский поток, который вы создали. На странице обзора потока пользователя выберите Запустить поток пользователя.
- Для приложения выберите веб-приложение, которое вы хотите протестировать, например одно именованное webapp1 , если вы зарегистрировали это ранее.
URL-адрес ответа должен быть
https://jwt.ms. - Выберите "Запустить поток пользователя", проверьте адрес электронной почты учетной записи, для которой требуется сбросить пароль, а затем нажмите кнопку "Продолжить".
- Измените пароль и нажмите кнопку "Продолжить". Маркер возвращается
https://jwt.msи браузер отображает его.
Создание политики сброса пароля
Пользовательские политики — это набор XML-файлов, которые вы отправляете в клиент Azure AD B2C для определения пути взаимодействия пользователей. Мы предоставляем начальные пакеты с несколькими предварительно созданными политиками, включая регистрацию и вход, сброс пароля и политики редактирования профилей. Дополнительные сведения см. в статье "Начало работы с настраиваемыми политиками в Azure AD B2C".
Устранение неполадок с потоками пользователей и настраиваемыми политиками Azure AD B2C
Приложение должно обрабатывать определенные ошибки, поступающие из службы Azure B2C. Узнайте , как устранить неполадки с пользовательскими потоками и настраиваемыми политиками Azure AD B2C.
Связанный контент
Настройте принудительный сброс пароля.