我已经能够创建 Azure Functions App 来管理 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 流登录,因此访问令牌与 Graph API 不兼容。此外,“Directory.AccessAsUser.All”在 B2C 应用程序的应用程序级别不存在。因此,我也不能将补丁请求与 client_credentials 流一起使用。根据一些建议,该过程可以由 Azure AD PowerShell 通过分配“公司管理员”角色来完成。但是,我还没有找到通过 Azure Function 重置密码的解决方案。分步解决方案(如果存在)对我来说真的很有帮助,因为我对 Azure 服务还比较陌生。