如何在管理员同意的情况下获取 Microsoft Graph API 组相关权限

How to get Microsoft Graph APIs group related permissions with administrator's consent

我们正在开发一款与 Microsoft Graph 集成的应用程序 API。现在,我可以使用 Microsoft Graph API 登录,并为工作帐户和个人帐户授予用户的访问权限,例如读取用户的个人资料等。 如果是 Microsoft 工作帐户,我们想读取用户的组信息。从doc,读取用户的组信息,我们需要管理员的同意。但是我们如何得到它呢?我四处搜寻但没有得到答案。我们是否需要联系每个租户的管理员让他们授权我们的应用程序?

从这个 link 组部分,当用户登录单击接受按钮时,我们似乎无法获得组权限。请问你要支持那个需要多长时间?

通过 V2.0 端点,我们可以在运行时和应用程序的常规使用期间动态指定您的应用程序所需的权限。为此,我们可以通过将它们包含在授权请求的范围参数中来指定您的应用程序在任何给定时间点所需的范围:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?scope=https:%2F%2Fgraph.microsoft.com%2Fgroup.read.all+openid+offline_access&client_id={clientId}&response_type=code&redirect_uri={redirectURL}

而对于需要admin的范围进行同意,我们需要保证登录账号有administrator权限。有关 v2.0 端点的更多信息,您可以参考 here.

Fei 的回答在技术上是正确的。然而,我怀疑这里的混淆更多地与 "administrator's consent" 的含义有关,而不是如何请求这些范围。

当我们谈论 "administrator's consent" 时,我们实际上是在说这些范围只能在用户以管理权限登录时使用。它 而不是 意味着管理员需要先同意用户才能启用它们。

  • 用户范围可用于任何帐户
  • 管理范围只能与管理员帐户一起使用

在您的应用程序可以使用管理员限制的范围之前,您需要获得管理员的同意。一旦租户的管理员同意,您将能够为该租户中的用户成功请求这些范围。有关详细信息,请参阅有关管理员限制范围以及如何发送管理员同意请求的主题:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-scopes#admin-restricted-scopes。是的,您需要使用您的应用程序的每个租户的管理员才能执行此操作。