Office365 如何通过管理员获取Microsoft Graph API组相关权限';同意

Office365 如何通过管理员获取Microsoft Graph API组相关权限';同意,office365,microsoft-graph-api,Office365,Microsoft Graph Api,我们正在开发一款与Microsoft graph API集成的应用程序。现在,我可以使用Microsoft Graph API登录,用户可以授予访问权限,例如读取用户的个人资料等,包括工作帐户和个人帐户。 如果是Microsoft工作帐户,我们希望读取用户的组信息。从中,要读取用户的组信息,我们需要管理员的同意。但是我们怎么才能做到呢?我四处寻找,但没有找到答案。我们是否需要联系每个租户的管理员,让他们授权我们的应用程序 从这个组部分来看,当用户单击“接受”按钮登录时,我们似乎无法获得组权限。我

我们正在开发一款与Microsoft graph API集成的应用程序。现在,我可以使用Microsoft Graph API登录,用户可以授予访问权限,例如读取用户的个人资料等,包括工作帐户和个人帐户。 如果是Microsoft工作帐户,我们希望读取用户的组信息。从中,要读取用户的组信息,我们需要管理员的同意。但是我们怎么才能做到呢?我四处寻找,但没有找到答案。我们是否需要联系每个租户的管理员,让他们授权我们的应用程序


从这个组部分来看,当用户单击“接受”按钮登录时,我们似乎无法获得组权限。我想问一下,如果您想支持这一点,需要多长时间?

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

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}

为了同意需要管理员的范围,我们需要确保登录帐户具有管理员权限。关于v2.0端点的更多信息,您可以参考。

Fei的回答在技术上是正确的。然而,我怀疑这里的混淆更多地与“管理员同意”的含义有关,而不是与如何请求这些范围有关

当我们谈论“管理员同意”时,我们实际上是在说,这些作用域只能在用户以管理权限登录时使用。这并不意味着管理员需要在启用用户之前给予用户许可

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

在应用程序可以使用管理员限制的作用域之前,您需要获得管理员的同意。一旦租户的管理员同意,您将能够为该租户中的用户成功请求这些作用域。有关更多信息,请参阅有关管理员限制作用域和如何发送管理员同意请求的主题:。是的,您需要使用您的应用程序的每个租户的管理员来执行此操作。

这里实际上还有第三个元素,即管理员代表组织同意的能力(无论请求权限是否可以由用户同意或必须由管理员同意)。代表组织的同意将允许组织中的任何用户在禁止同意的情况下使用应用程序。不确定这是否在V2上可用。在v1端点上,您可以通过在授权请求的查询字符串中传递prompt=admin_approve来代表组织启用管理员同意。此外,我们正在开发一些新的用户可同意的组权限,我们希望很快就可以使用这些权限(尽管没有ETA),这些权限在v1端点上运行良好。很遗憾,“管理员同意”不是v2的有效提示选项。谢谢您的帮助。我会把这个转发给我的队友。