【发布时间】:2023-01-05 19:18:31
【问题描述】:
我正在尝试更改在我的 Azure B2C 租户中创建的用户的密码。我正在使用 Microsoft.Graph C# SDK 进行 API 调用。
首先,我通过提供租户的详细信息来创建 GraphServiceClient:
var options = new TokenCredentialOptions
{
AuthorityHost = AzureAuthorityHosts.AzurePublicCloud
};
var clientSecretCredential = new ClientSecretCredential("tenantId", "clientId", "clientSecret", options);
_client = new GraphServiceClient(clientSecretCredential);
然后我使用客户端的内置方法来更改用户的密码:
await _client.Users["userId"].ChangePassword(currentPassword, newPassword).Request().PostAsync();
但我收到以下错误:
Microsoft.Graph.ServiceException:代码:Authorization_RequestDenied 消息:访问更改密码操作被拒绝。
是否可以代表用户更改密码?我在互联网上发现了关于这个主题的相互矛盾的信息。如果这是不可能的,那么执行此操作的有效方法是什么?
我有一个 SPA 前端应用程序,其中用户通过重定向流进行身份验证。然后将访问令牌传递到我的后端以授权请求。也许我可以使用此令牌以某种方式访问 MS Graph API 并更改密码?
注意:我想让用户在不离开我的 SPA 应用程序的情况下更改他们的密码。
【问题讨论】:
标签: azure microsoft-graph-api azure-ad-b2c