[英]Azure AD B2C Password Reset
我試圖了解如何使用Azure AD B2C密碼重置。
似乎可以通過多種方式處理密碼重置。 這些有什么區別? 這些之間有價格差異嗎? 是否具有Azure AD的這些功能,有些是Azure AD B2C的功能? 為什么下面的方法3看起來不起作用?
通過Azure B2C用戶流(策略)。
通過Azure Active Directory自助服務密碼重置。 可通過https://passwordreset.microsoftonline.com訪問。 這允許用戶通過存儲在其配置文件中的任何電子郵件地址重置其密碼。
在用戶配置文件上重置密碼按鈕 這提供了一個臨時密碼,但臨時密碼似乎不起作用。
我的經驗,假設您的B2C租戶名為contoso.onmicrosoft.com或只是contoso.com的示例:
根據我的經驗,唯一真正的方法是使用用戶流(策略)。 另外兩個僅適用於特定於相關B2C目錄的帳戶。
您必須考慮在B2C場景中,用戶的電子郵件地址也可能屬於完全不同的目錄中的“普通”AAD用戶(經典B2B)。 兩個租戶/目錄並不真正了解彼此。 即使它不是AAD帳戶,它也可能屬於多個不同B2C租戶中的用戶。 每個都有一個單獨的密碼。
目前,在一般情況下,我們僅支持兩種方法來重置Azure AD B2C用戶的密碼:
使用Azure AD B2C自助重置密碼(SSPR) 密碼重置策略/用戶流。
管理員可以使用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用戶的密碼。
正如Alex所說,AAD B2C用戶不是Azure AD用戶。 B2C用戶是2c senario。 普通Azure AD用戶適用於組織/企業方案。
您還可以參考我的答案,了解Azure AD B2C租戶與普通Azure AD租戶之間的區別?
有關B2C密碼重置策略如何工作的更多信息:
在Signup / in policy中點擊“忘記密碼”按鈕后,AAD B2C會將帶有“AADB2C90118”的消息發送回應用程序。
例如,在ASP.NET MVC Web App中,它應該挑戰
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");
}
這意味着應用程序會將其/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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.