我正在尝试更改 Azure AD 用户密码。
用户已经使用隐式流和库在SPA应用程序中进行了身份验证。adal
打电话时:
return await graphClient.Me.Request().UpdateAsync(new User
{
PasswordProfile = new PasswordProfile
{
Password = userPasswordModel.NewPassword,
ForceChangePasswordNextSignIn = false
},
});
Run Code Online (Sandbox Code Playgroud)
我收到此异常:
{"代码:Request_ResourceNotFound\r\n消息:资源“35239a3d-67e3-4560-920a-2e9ce027aeab”不存在或其查询的引用属性对象之一不存在。\r\n\r\n内部错误\r\ n"}
调试我得到的访问令牌,Microsoft Client SDK我看到这个GUID指的是oid和sub属性。见下文:
这是我用来获取令牌的代码:
IConfidentialClientApplication clientApp =
ConfidentialClientApplicationBuilder.Create(Startup.clientId)
.WithAuthority(string.Format(AuthorityFormat, Startup.tenant))
.WithRedirectUri(Startup.redirectUri)
.WithClientSecret(Startup.clientSecret)
.Build();
var authResult = await clientApp.AcquireTokenForClient(new[] { MSGraphScope }).ExecuteAsync();
return authResult.AccessToken;
Run Code Online (Sandbox Code Playgroud)
我在SPA应用程序中使用隐式流。在这样做时,我看到我的用户已通过身份验证并且所有声明都存在。ClaimsPrincipal.Current
我在 GitHub 和 Microsoft Docs 上阅读了很多文档,但我仍然不清楚如何实现这一点。顺便说一下,我正在使用这些 Microsoft Graph 包:
<package id="Microsoft.Graph" …Run Code Online (Sandbox Code Playgroud) authentication change-password access-token microsoft-graph-sdks microsoft-graph-api
access-token ×1