我有一个多租户应用程序,要求最终用户在访问时授予一组特定的权限。我现在需要向应用程序添加权限,并且需要最终用户重新授予应用程序以使其生效。
话虽这么说,我真的想检查用户在其AAD中的当前应用程序,以验证他们已授予的权限集。有了这个,我可以检查是否需要重新授予它们并获得良好的最终用户体验。
我发现最接近的是使用以下Microsoft Graph API端点: ' https://graph.microsoft.com/beta/oAuth2Permissiongrants'
列出租户中的服务主体及其所需的权限范围。这不是一个解决方案,因为服务主管的许可范围与应用程序的范围不同。
第二种可能的解决方案是使用以下AAD Graph Api端点: ' https://graph.windows.net/ {tenantid} /应用'
可悲的是,这也不可行,因为它没有返回"企业应用程序"。
任何人都知道如何完成我想要做的事情? 感谢
答案 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
下该租户同意该应用程序的权限列表。