azure 非管理员的图形API权限

e7arh2l6  于 2023-10-22  发布在  其他
关注(0)|答案(2)|浏览(109)

我想给予一些Graph API权限给一个非管理员用户Bob,这样它就可以读取一些数据而不需要管理员的同意。
如果我在这里给予管理员许可,则每个权限都被授予每个用户,但我只想给予一部分权限给Bob。

所以我:
1.注册了一个新的应用程序
1.将我感兴趣的Graph Explorer权限设置为应用程序(作为委托和应用程序)

1.已授予管理员此类权限

1.将应用程序发送给Bob
但是,在以Bob身份登录后,图形浏览器仍然告诉我,我没有列出组织中所有用户所需的权限(例如)。
任何帮助是高度赞赏!

hm2xizp9

hm2xizp91#

我试着在我的环境中复制相同的结果,得到了以下结果:

我注册了一个Azure AD应用程序,并授予了列出用户所需的特定**API permissions**,如下所示:

我创建了一个非管理员用户**Bob**,并像下面这样分配应用程序:

  • 我试图通过Microsoft Graph Explorer使用以下查询列出登录为**Bob*的用户,并获得相同的错误:

注意,即使您在Azure门户中授予管理员同意,它也不会反映在图形资源管理器中。因此,您必须在Graph Explorer中单独同意**Bob**。

  • 进入修改权限-> User.ReadBasic.All ->同意->接受 *

我在同意后成功获得了响应,如下所示:

在您的场景中,如果**Bob**在没有管理员同意的情况下无法请求它们,请尝试修改如下设置:

  • 转到Azure门户-> Azure Active Directory ->企业应用程序->同意和验证->用户同意设置 *

确保在Microsoft Graph Explorer中根据查询授予同意,方法是单击修改权限选项卡

参考文献:

列表用户- Microsoft Graph v1.0|微软文档
Overview of consent and permissions | Microsoft Docs

tcomlyy6

tcomlyy62#

图形浏览器使用微软所谓的逐步同意。这意味着它请求的令牌(以及用户同意的令牌)是在运行时配置的。
因此,如果您批准了某些权限,您可以要求Bob在图形浏览器中更改它为他请求的权限。一旦Bob按下Ok(不确定按钮内容),将显示一个新的同意屏幕。Bob将获得一个新令牌,您应该能够在门户的“用户同意”选项卡中看到该令牌。
它还有助于复制令牌并将其粘贴到https://jwt.ms,从而可以轻松概述令牌中的所有声明(包括范围)。

相关问题