AAD B2C ≠ AAD ===> Пользователи AAD B2C users Пользователи AAD
В настоящее время мы поддерживаем только два способа сброса пароля пользователей Azure AD B2C в общем сценарии:
Пароль сброса самообслуживания (SSPR) с Azure AD B2C Политика сброса пароля / поток пользователя.
Администраторы помогают пользователям сбросить пароль с помощью Azure AD Graph API : https://docs.microsoft.com/en-us/previous-versions/azure/ad/graph/api/users-operations#reset-a-users-password--
Ответы на ваши вопросы:
В чем разница между ними?Есть ли разница в цене между ними?Являются ли некоторые из этих функций Azure AD, в то время как некоторые являются функциями Azure AD B2C?
Политика сброса пароля / поток пользователей предназначена для пользователей AAD B2C,Вы можете использовать его напрямую.Пользователи AAD B2C могут использовать это для самостоятельного сброса пароля.Это также разновидность SSPR.
Сброс пароля самообслуживания Azure Active Directory .Как правило, это для корпоративных пользователей.Так как эта функция предназначена только для V1 Вход в пользовательский поток только , я не рекомендую использовать этот способ.
Кнопка сброса пароля в профиле пользователя. Это только для пользователей AAD (организации / предприятия).Не используйте эту кнопку для пользователей AAD B2C.
Почему описанный ниже способ 3 не работает?
Как я уже упоминал ввыше, эта функция только для пользователей Azure AD.НЕ AAD B2C пользователи.Поэтому вы не можете сбросить пароль пользователя B2C здесь.
Как сказал Алекс, пользователь AAD B2C не является пользователем Azure AD.Пользователи B2C для 2c senario.Обычный пользователь Azure AD предназначен для сценария организации / предприятия.
Вы также можете обратиться к моим ответам для В чем разница между клиентом Azure AD B2C и обычным клиентом Azure AD?
Подробнее о том, как работает политика сброса пароля B2C:
После нажатия «забыть пароль» Кнопка «Регистрация» / «Политика», AAD B2C отправит сообщение с «AADB2C90118» обратно в приложение.
Например, в веб-приложении ASP.NET MVC оно должно вызвать
private Task OnAuthenticationFailed(AuthenticationFailedNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> notification)
{
notification.HandleResponse();
// Handle the error code that Azure AD B2C throws when trying to reset a password from the login page
// because password reset is not supported by a "sign-up or sign-in policy"
if (notification.ProtocolMessage.ErrorDescription != null && notification.ProtocolMessage.ErrorDescription.Contains("AADB2C90118"))
{
// If the user clicked the reset password link, redirect to the reset password route
notification.Response.Redirect("/Account/ResetPassword");
}
Itозначает, что приложение будет перенаправлять его /Account/ResetPassword
на полученное после этого сообщения.
/Account/ResetPassword
определяется здесь из Account Controller.Оно должно определяться именем политики сброса пароля, которое вы определили.
public void ResetPassword()
{
// Let the middleware know you are trying to use the reset password policy (see OnRedirectToIdentityProvider in Startup.Auth.cs)
HttpContext.GetOwinContext().Set("Policy", Startup.ResetPasswordPolicyId);
// Set the page to redirect to after changing passwords
var authenticationProperties = new AuthenticationProperties { RedirectUri = "/" };
HttpContext.GetOwinContext().Authentication.Challenge(authenticationProperties);
return;
}
- Затем пользователь будет перенаправлен в политику сброса пароля B2C для изменения своего пароля.