使用AAD Graph API或Microsoft Graph API获取Azure Active Directory应用程序权限

时间:2017-05-16 21:17:35

标签: azure permissions office365 azure-active-directory microsoft-graph

我有一个多租户应用程序,要求最终用户在访问时授予一组特定的权限。我现在需要向应用程序添加权限,并且需要最终用户重新授予应用程序以使其生效。

话虽这么说,我真的想检查用户在其AAD中的当前应用程序,以验证他们已授予的权限集。有了这个,我可以检查是否需要重新授予它们并获得良好的最终用户体验。

我发现最接近的是使用以下Microsoft Graph API端点: ' https://graph.microsoft.com/beta/oAuth2Permissiongrants'

列出租户中的服务主体及其所需的权限范围。这不是一个解决方案,因为服务主管的许可范围与应用程序的范围不同。

第二种可能的解决方案是使用以下AAD Graph Api端点: ' https://graph.windows.net/ {tenantid} /应用'

可悲的是,这也不可行,因为它没有返回"企业应用程序"。

任何人都知道如何完成我想要做的事情? 感谢

2 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您想要找回一个人成功同意的权限列表。

例如,如果我创建一个客户端应用程序,并且我请求“User.Read”和“Group.ReadAll”,并且用户已登录到我的应用程序并同意这些权限,那么您希望查看目录中的位置该信息已存储。

如果是,您希望使用devenv.exe msbuild.exe here for Microsoft Graph

OAuth2PermissionGrant Entity

请注意,对应用程序的同意将始终表示为指向该应用程序的服务主体的链接,而不是应用程序对象。

我希望这有帮助!

答案 1 :(得分:0)

您需要使用AAD Graph API端点分两步完成此操作。

  • 第一步是检索应用程序的objectID 租客来自:

    https://graph.windows.net/{tenantId}/servicePrincipals?$filter=appId eq '{AppID}'

  • 其次是在这种情况下使用来自AAD端点的oauth2PermissionGrants:

    https://graph.windows.net/{tenantId}/servicePrincipals/{ObjectID}/oauth2PermissionGrants

这将为您提供字段scope下该租户同意该应用程序的权限列表。