无法通过Graph API获取我所属的Office 365团队。

4
尝试获取用户所属的所有 Office 365 组。
我在 Azure 上注册了一个“本机客户端应用程序”,并仅选择了一个权限:“Microsoft Graph” 范围下的“读取所有组”。
问题:来自其他租户的用户遇到了“调用主体由于缺乏权限而无法同意”的错误,并且没有进入同意步骤。
如果用户具有管理员权限或者我在第二个租户上注册另一个应用程序,则可以通过同意步骤并获得组列表。
顺便说一句,注册“Web 应用程序”并在多租户选项中选择“是”也没有帮助。
是否有人知道“Group.Read.All”需要管理员同意吗?根据 this 的说明,不需要。
我还尝试运行此查询 https://graph.microsoft.com/v1.0/me/memberOf/$/microsoft.graph.group?$filter=groupTypes/any(a:a%20eq%20'unified'),如 here 中所述“获取我所属的统一组”,但没有成功。

另一个问题,是否有一种方法可以将本地应用程序配置为多租户应用程序?

2个回答

0

根据您所说的,答案是:没有达到同意步骤,您只选择了读取所有组,这是不够的。您还需要在Graph API中选择登录用户权限。

希望这可以帮助您。


我尝试添加“登录并读取用户个人资料”权限,但结果还是一样... - Ram T

0

这里有一些问题,我会尽力帮你解答。如果我漏掉了什么或者你需要更多的澄清,请告诉我。

Azure AD中的本地应用程序天然支持多租户,因此与Web应用程序不同,无需设置多租户开关。

Group.ReadAll需要管理员同意。在确定我的应用程序所需权限时,我发现以下页面非常有用:http://graph.microsoft.io/en-us/docs/authorization/permission_scopes

在开发过程中,我有时需要更新我的应用程序的权限。每当权限被更新时,我发现访问http://myapps.microsoft.com以撤销对我的应用程序的同意是很有用的。然后下次我登录应用程序时,我总是会被提示内容,以便我清楚地看到用户将看到什么。


感谢Doug提供的信息丰富的回答,但是我没有找到有关本地应用程序管理同意流程的任何信息。 - Ram T
管理员同意与用户同意是不同的。在这种情况下,您的应用程序必须在重定向/HTTP获取到/common/oauth2/authorize时发送prompt=admin_consent。这里有一篇关于管理员同意详细信息的博客文章。http://blog.mastykarz.nl/implementing-admin-consent-multitenant-office-365-applications-implicit-oauth-flow/基本上,一旦管理员同意,标准用户将不会被提示同意。 - Doug Perkes
事实上,当我在重定向中使用prompt=admin_consent时,我能够作为管理员同意并且没有像普通用户一样收到提示。 我使用在Azure中注册的Web应用程序完成了所有操作 - 你知道是否有通过本机应用程序实现此目的的方法吗? - Ram T

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接