MS Graph Api 读取授予权限的用户
Posted
技术标签:
【中文标题】MS Graph Api 读取授予权限的用户【英文标题】:MS Graph Api Read Users that gave permissions 【发布时间】:2020-09-10 11:23:24 【问题描述】:我有一个只需要委派权限的天蓝色应用注册。 用户允许以下范围:
https://graph.microsoft.com/contacts.readwrite https://graph.microsoft.com/mail.send https://graph.microsoft.com/calendars.readwrite https://graph.microsoft.com/User.ReadBasic.All如何获取授予此访问权限的用户列表? 我需要这个来获取内部用户 ID。我的应用程序只有电子邮件,我需要使用 api 获取 id。
/Users 上的过滤器不会起作用。没有权限。。 但我不想分配范围“User.Read.All”,因为它需要管理员批准。
【问题讨论】:
【参考方案1】:您需要做的是读取用户和 MS Graph API 服务主体之间的 oauth2PermissionGrants/delegated 权限授予。 文档:https://docs.microsoft.com/en-us/graph/api/user-list-oauth2permissiongrants?view=graph-rest-1.0&tabs=http
您可以通过以下方式查询:
GET /users/id | userPrincipalName/oauth2PermissionGrants
我尝试按范围过滤,但遗憾的是没有奏效,因此您可能需要解析它返回的列表以找到您正在寻找的范围。 您还应该在租户中找到 MS Graph API 的服务主体/企业应用程序的 objectId 并按此过滤。 这样您就不会错误地查看另一个 API 的范围。
此端点至少需要 Directory.Read.All 权限。 您需要得到管理员的批准才能获取此数据。
【讨论】:
以上是关于MS Graph Api 读取授予权限的用户的主要内容,如果未能解决你的问题,请参考以下文章
将 MS Graph 访问权限从一个帐户授予其他帐户 - 可能吗?
MS Graph API - 创建在线会议,不生成拨号会议信息。
如何使用 Facebook Graph API 读取 Instagram 用户