授予权限的MS Graph Api读取用户

问题描述

我有一个天蓝色的应用程序注册,只需要委派权限。 用户允许以下范围:

如何获取授予此访问权限的用户列表? 我需要这个来获取内部用户ID。我的应用程序只有电子邮件,我需要使用api获取ID。

/用户的过滤器不会使麦芽汁变味。没有权限.. 但我不想分配范围“ User.Read.All”,因为它需要管理员的批准。

解决方法

要获取该信息,您需要做的是阅读用户与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权限。 您需要获得管理员的批准才能获取此数据。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...