microsoft-graph-api - 尝试使用来自外部域的用户名更改本地 Azure AD B2C 用户的密码时出现错误 AADSTS50034
问题描述
我正在为我的 Angular 6 前端应用程序开发 Azure AD B2C,并使用 Microsoft Graph API 来更改登录用户的密码。我正在access_token
使用授权码流程。
当用户有一个用户名时它工作正常xyz@myb2cname.onmicrosoft.com
,我得到一个access_token
然后调用https://graph.microsoft.com/v1.0/users/{id}/changePassword
。
但是,当我尝试对用户名如xyz@gmail.com
or的用户执行相同操作abc@hotmail.com
时,在获取access_token from
授权码流 ( grant_type=password
) 时出现错误。注意:这些用户是我的 AAD B2C 租户中的“本地”帐户
以下是我收到的错误消息:
{
"error": "invalid_grant",
"error_description": "AADSTS50034: To sign into this application the account must be
added to the myb2cname.onmicrosoft.com directory.
Trace ID: 8fcae061-5088-4393-9e5b-d0a83d1d0a00
Correlation ID: 0dc6c906-c54b-4cd8-ae8b-46f3f6118e40
Timestamp: 2018-08-01 06:16:55Z",
"error_codes": [
50034
],
"timestamp": "2018-08-01 06:16:55Z",
"trace_id": "8fcae061-5088-4393-9e5b-d0a83d1d0a00",
"correlation_id": "0dc6c906-c54b-4cd8-ae8b-46f3f6118e40"
}
当用户名看起来像或时,如何调用changePassword
使用电子邮件身份提供商(登录-注册策略)登录的用户?xyz@gmail.com
abc@hotmail.com instead
xyz@myb2cname.onmicrosoft.com
解决方案
这是预期的行为。在实施之前,您需要清楚地了解 AD。
在 Azure AD 中,要根据目录对用户进行身份验证,用户应该是 Active Directory 的一部分。不属于 Active Directory 的用户将不会被验证。仅当用户通过身份验证时才会生成令牌。
尝试为不属于 Active Directory 的用户生成令牌类似于使用无效用户帐户登录 Azure 门户。
推荐阅读
- reactjs - React-to-print:关闭打印窗口时如何更改 onAfterPrint 中的状态
- javascript - 函数中的多个 if else 语句 - 表单仅重定向到顶部列出的选项
- c# - 抑制由早期编译器错误导致的“找不到元数据 dll 文件”错误
- python - 在python中向数据文件(csv)添加注释
- watson-knowledge-catalog - Watson 知识目录数据源连接
- c# - 重启后我的 Windows 服务无法启动
- excel - 如何加快 Excel VBA 中的数据文件导入
- docker - 由于 docker/cron,设备上没有剩余空间
- amazon-web-services - 如何授权角色执行“execute-api:Invoke”?
- powerbi - 在格式化的会计期间列中重新排序月份和年份