我们正在开发一个与Microsoft图形API集成的应用程序。现在,我可以使用Microsoft Graph API登录用户的授权访问权限,例如读取用户的个人资料等,用于工作帐户和个人帐户。 如果是Microsoft工作帐户,我们希望读取用户的组信息。从doc,要阅读用户的群组信息,我们需要得到管理员的同意。但是我们怎么做到的呢?我四处搜寻但未能得到答案。我们是否需要联系每个租户的管理员以让他们授权我们的应用程序?
从这个link群组部分,当用户登录点击接受按钮时,我们似乎无法获得群组权限。如果你想支持,我可以问多长时间?
答案 0 :(得分:2)
使用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}
要同意需要管理员的范围,我们需要确保登录帐户具有管理员权限。有关v2.0端点的更多信息,请参阅here。
答案 1 :(得分:0)
费孝通的答案在技术上是正确的。但我怀疑这里的混淆更多地与管理员的同意和#34;的含义有关。而不是如何请求这些范围。
当我们谈论"管理员的同意"我们真的说这些范围只能在用户以管理员权限登录时使用。它不意味着管理员需要先同意用户才能启用它们。
答案 2 :(得分:0)
在您的应用程序可以使用管理员限制范围之前,您需要管理员同意。租户管理员同意后,您将能够成功为该租户中的用户请求这些范围。有关详细信息,请参阅有关管理员限制范围以及如何发送管理员同意请求的此主题:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-scopes#admin-restricted-scopes。是的,您需要使用您的应用程序管理每个租户才能执行此操作。