非管理员的Graph API权限

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

我想向非管理员用户 Bob 授予一些 Graph API 权限,以便它能够读取一些数据无需需要管理员同意。

如果我在此处给予管理员同意,则所有权限都会授予每个用户,但我只想向 Bob 授予一部分权限。

所以我:

  1. 注册了新的应用程序
  2. 将我感兴趣的 Graph Explorer 权限设置到应用程序(既作为委托又作为应用程序)
  3. 已授予管理员此类权限的同意
  4. 将应用程序分配给 Bob

但是,以 Bob 身份登录后,图形浏览器告诉我,我没有所需的权限(例如)列出组织中的所有用户。

非常感谢任何帮助!

azure permissions active-directory microsoft-graph-api azure-ad-graph-api
3个回答
3
投票

我尝试在我的环境中重现相同的结果并得到以下结果:

我注册了一个 Azure AD 应用程序并授予了列出用户所需的特定

API permissions
,如下所示:

enter image description here

我创建了一个非管理员用户

Bob
并分配了如下应用程序:

enter image description here

我尝试使用以下查询通过 Microsoft Graph Explorer 列出用户,并以

Bob
身份登录,并得到了相同的错误:

enter image description here

注意,即使您在 Azure 门户中授予管理员同意,也不会反映在 Graph Explorer 中。因此,您必须在 Graph Explorer 中单独同意

Bob

转到修改权限 -> User.ReadBasic.All -> 同意 -> 接受

enter image description here

在同意后我成功得到回复,如下所示:

enter image description here

在您的场景中,如果未经管理员同意

Bob
无法请求它们,请尝试修改如下设置:

转到 Azure 门户 -> Azure Active Directory -> 企业应用程序 -> 同意和权限 -> 用户同意设置

enter image description here

确保通过单击修改权限选项卡在 Microsoft Graph Explorer 中根据查询授予同意。

参考资料:

列出用户-Microsoft Graph v1.0 |微软文档

同意和权限概述 |微软文档


1
投票

Graph Explorer 使用 Microsoft 所说的“逐步同意”。这意味着它请求的令牌(并且用户同意)是在运行时配置的。

因此,如果您批准了某些权限,您可以要求 Bob 在图形浏览器中更改为他请求的权限。 一旦鲍勃按下“确定”(不确定按钮说什么......),他就会看到一个新的同意屏幕。 Bob 将获得一个新令牌,您应该能够在门户的“用户同意”选项卡中看到该令牌。

它还有助于复制令牌并将其粘贴到https://jwt.ms,这样可以轻松概览令牌中的所有声明(包括范围)。


0
投票

我也有同样的情况,授予用户访问共享邮箱的权限。我已授予 mail.readwrite 的委派管理员同意,并且用户已委派 mail.readwrite。此外,作为在线交换,用户可以完全访问共享邮箱。我仍然得到 403。

您的问题解决了吗?

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