Permissions Microsoft Graph API-列出用户登录时使用的所有权限/范围

Permissions Microsoft Graph API-列出用户登录时使用的所有权限/范围,permissions,microsoft-graph-api,Permissions,Microsoft Graph Api,我有多个应用程序,用户可以使用其Microsoft帐户从我的网站登录。每个都需要不同的权限/范围集,例如一些只需要User.Read,但一些需要Directory.Read.All,脱机访问等 是否有任何方法可以查询Microsoft Graph API以获取用户登录时使用的所有权限/作用域(=同意) 例如GEThttps://graph.microsoft.com/beta/currentPermissions 目标是了解是否允许在应用程序上为用户运行特定的API调用。这将防止无用的API调用

我有多个应用程序,用户可以使用其Microsoft帐户从我的网站登录。每个都需要不同的权限/范围集,例如一些只需要
User.Read
,但一些需要
Directory.Read.All
脱机访问

是否有任何方法可以查询Microsoft Graph API以获取用户登录时使用的所有权限/作用域(=同意)

例如
GEThttps://graph.microsoft.com/beta/currentPermissions

目标是了解是否允许在应用程序上为用户运行特定的API调用。这将防止无用的API调用和

{
    "code": "Authorization_RequestDenied",
    "message": "Insufficient privileges to complete the operation."
}
答复


浏览文档没有结果。

如果用户使用工作或学校帐户(Azure AD)登录,您只需查看访问令牌中的权限列表,如User.Read或Files.ReadWrite。要在编写代码之前看到这一点,可以使用一些工具,例如,您可以向他们提供您的令牌(仅使用测试帐户,而不是真实帐户),并且可以在令牌中看到值(“声明”)


为了在代码中实现这一点,每种语言都有JWT解码库。我不确定您的编程使用的是什么,所以只要搜索GitHub/Google,我肯定您会看到大量可用的JWT库。

我们在一个解决方案中有多个项目,我们在Asp.Net中使用OWIN来管理权限。当用户登录时,它检索用于调用api的令牌,处理api的后端将说明是否允许用户执行或查看请求的项目/页面。