更改密码Azure AD B2C

时间:2020-08-12 12:22:58

标签: azure-ad-b2c change-password clientcredential

我已经能够创建Azure Functions应用程序来管理Azure B2C用户。我可以创建新用户,并使用client_credentials Flow完美地更新配置文件。但是,当我使用带有正文的PATCH请求更改密码时:

{
  passwordProfile: {
     password: 'password-value',
     forceChangePasswordNextSignIn: false
     },
  passwordPolicies: "DisablePasswordExpiration"
}

我收到此错误:

 {code: 'Authorization_RequestDenied', message: 'Insufficient privileges to complete the operation.'}

我对此进行了一些研究,发现更新密码需要委派权限“ Directory.AccessAsUser.All”。我正在前端应用程序中使用B2CLogin Flow登录,因此访问令牌与Graph API不兼容。此外,在B2C应用程序的应用程序级别上不存在“ Directory.AccessAsUser.All”。因此,我也不能将补丁请求与client_credentials流一起使用。根据一些建议,该过程可以由Azure AD PowerShell通过分配“公司管理员”角色来完成。但是,我还没有找到通过Azure功能重置密码的解决方案。分步解决方案(如果有的话)对我真的很有帮助,因为我对Azure Services相对较新。

1 个答案:

答案 0 :(得分:2)

最简单的方法是将 Global Admin 角色分配给Azure门户上的服务主体。

转到Azure Portal- Azure Active Directory -角色和管理员

搜索“全局管理员”并选择它。

enter image description here

点击 +添加作业。然后搜索您的服务主体。

enter image description here

请注意,“仅允许活动分配申请。”

因此,在点击“下一步”之后,为分配类型选择“有效”。

enter image description here

分配完成后,您可以使用client_credentials流更新密码。

@Jas Suri提到的

Add-AzureADDirectoryRoleMember也可以做同样的事情。