[英]Azure AD B2C App Registration Graph API — Clarification
因此,我正在尝试将 Graph API 与 Azure AD B2C 一起使用。 我的理解是,在请求访问令牌时无法使用client_credentials
流。 当我尝试使用带有client_credentials
的访问令牌来获取/beta/policies/b2cAuthenticationMethods
,我收到此错误:
{
"error": {
"code": "AADB2C",
"message": "User Authorization: Access is denied.",
"innerError": {
"correlationId": "4c00031f-febc-4c1a-9728-701f0c1fda00",
"date": "2021-01-19T18:51:42",
"request-id": "77a30adb-5103-40ec-84f3-0626800e976a",
"client-request-id": "77a30adb-5103-40ec-84f3-0626800e976a"
}
}
}
这是预期的,因为我使用了 client_credentials 流程。
但是, 文档说明了以下内容:
Although the OAuth 2.0 client credentials grant flow is not currently directly supported by the Azure AD B2C authentication service, you can set up client credential flow using Azure AD and the Microsoft identity platform /token endpoint for an application in your Azure AD B2C tenant. Azure AD B2C 租户与 Azure AD 企业租户共享一些功能。
我已经完成了上面链接的过程。 但是,我遇到了一个问题,现在对这个“自动化”过程有疑问:
当此应用程序请求访问令牌时,我无法进行任何用户交互。
我必须使用不同的流程吗? 如果是这样,我该怎么做才能使诸如 MFA 之类的事情不成问题? 我没有使用任何 SDK,我只是在我的应用程序中使用HttpClient
直接查询 MGraph,并通过了Authorization Bearer
header。
为什么我无法完成上述链接文档的这一部分。
我以 B2C 租户的全局管理员身份登录。 我导航到Roles and Administrators
部分
然后,在左侧出现的Add Assignments
弹出窗口中,我开始输入我的应用程序的名称
它没有出现,但它已注册:我可以在我的注册应用程序列表中看到它:
这里有什么交易?
我发现了许多其他类似的问题,并且都将我带到了参考文档页面。 但是,我仍然不太了解在 B2C 租户中为已注册应用程序自动获取访问令牌的正确程序。
非常感谢。
有关我在这篇文章中遇到的问题的两种解决方案,请参阅我的答案。
好的,所以我设法在这里找到了我的问题的答案。
只是出于好奇,我将我的应用程序的 ServicePrincipal 设为全局管理员。 我再次使用client_crededentials
流到beta/policies/b2cAuthenticationMethodsPolicy
并且仍然收到关于用户授权的上述错误:访问被拒绝。 有没有搞错? 我开始怀疑是否是那个特定的端点才是问题所在,而不是流程本身。 尤其是因为在为我的 B2C 租户使用来自client_credentials
流的访问令牌时,我可以很好地获取/beta/users
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.