请求Microsoft Graph委托权限时,没有为AD B2C用户返回访问令牌

问题描述 投票:0回答:1

[用户故事:给定一个具有全局管理员角色且oid为01234567-901a-bcde-f012-3456789abcde的ADB2C用户(不是真正的oid),我希望能够以该用户身份登录并从“ https://graph.microsoft.com/beta/me”中检索用户个人资料或“ https://graph.microsoft.com/beta/users/01234567-901a-bcde-f012-3456789abcde”。两者均在文档中列为B2C的有效端点。

它不起作用:No Access Token!

在仅分配了Microsoft Graph权限范围的应用程序注册中,我使用邮递员来请求用于访问MS Graph的承载令牌。有一个Web重定向URI(https://oauth.pstmn.io/v1/callback),一个客户端机密,并且对访问令牌和ID令牌都启用了隐式授权。

要求的范围是:openid offline_access https://graph.microsoft.com/Directory.AccessAsUser.All

同样,B2C用户帐户具有全局管理员角色。

  • 隐式流返回错误消息

AADB2C90205:此应用程序对此Web资源没有足够的权限来执行该操作。

  • 授权码流程(包括应用程序密码时,缺少访问承载令牌)。有一个ID令牌和一个刷新令牌,但没有访问令牌。无论我是否将授权发送到外部浏览器,都带有或不带有PKCE。

我的租户中的应用具有用户流B2C_1_postman,这基本上是默认的。它可以与邮递员,其他测试应用程序以及B2C刀片式服务器中的“运行用户流程”功能配合使用。

身份验证端点为:

https://{Tenant}.b2clogin.com/{Tenant}.onmicrosoft.com/B2C_1_postman/oauth2/v2.0/authorize

令牌端点为:

https://{Tenant}.b2clogin.com/{Tenant}onmicrosoft.com/B2C_1_postman/oauth2/v2.0/token

我已经通过Microsoft github存储库中的几个桌面演示,以及现在的Postman中复制了此行为。该应用程序称为“邮递员”,位于ADB2C租户中。我授予了它以下的应用程序API范围:

Directory.AccessAsUser.All
Directory.Read.All
Directory.ReadWrite.All
Directory.email
Directory.offline_access
Directory.profile

此过程反映了https://github.com/Azure-Samples/active-directory-b2c-dotnet-desktop处的桌面演示的设置,唯一的例外是我希望我的桌面应用程序使用MS Graph而不是NodeJS示例应用程序。 (如果我添加示例应用程序的端点,则此应用程序注册会很好。但是指定MS Graph范围始终会返回一个空的访问ID。)

我该如何使用它?

[用户故事:给定一个ADB2C用户,该用户具有全局管理员角色,并且oid的名称为01234567-901a-bcde-f012-3456789abcde(不是真正的oid),我希望能够以该用户身份登录并检索该用户。 ..

microsoft-graph azure-ad-b2c
1个回答
0
投票

通过Graph API管理用户似乎仍然需要其他应用注册。它不能是B2C应用。文档中的说明详细说明了应用程序注册:https://docs.microsoft.com/en-us/azure/active-directory-b2c/microsoft-graph-get-started

© www.soinside.com 2019 - 2024. All rights reserved.