我在https://apps.dev.microsoft.com有多个应用程序,用户使用我们网站上的Microsoft帐户登录。每个都需要不同的权限/范围集,例如一些只需要User.Read
但有些需要Directory.Read.All
,offline_access
等。
有没有办法查询Microsoft Graph API以获取用户登录的所有权限/范围(=同意)?
例如GET https://graph.microsoft.com/beta/currentPermissions
目标是了解是否允许为应用程序上的用户运行特定的API调用。这样可以防止无用的API调用
{
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation."
}
响应。
浏览文档没有结果。
如果用户使用工作或学校帐户(Azure AD)登录,您只需查看访问令牌内部以查看User.Read或Files.ReadWrite等权限列表。要在编码之前看到这一点,有像https://jwt.io/这样的工具,你可以给它们你的令牌(只用测试帐户,而不是真实账户),你可以看到令牌中的值(“声明”)。
要在代码中执行此操作,每种语言都有JWT解码库。我不确定你的编程是什么,所以只需搜索GitHub / Google,我相信你会看到很多可用的JWT库。