如何通过Microsoft Graph Explorer获取Azure AD企业应用完整列表?
如何通过Microsoft Graph Explorer获取Azure AD企业应用列表
你这里混淆了Azure AD里两个容易搞混的核心概念:应用注册(App Registrations)和企业应用(Enterprise Applications)——这就是调用applications端点返回的不是目标列表的原因:
applications端点对应管理中心里的「应用注册」,是应用的全局定义;- 你在企业应用里看到的200个应用,其实是服务主体(Service Principals),是应用在你的租户里的实例化对象。
1. 获取企业应用列表的正确API调用
在Microsoft Graph Explorer中,使用以下GET请求即可获取企业应用列表:
GET https://graph.microsoft.com/v1.0/servicePrincipals
重要细节:
- 权限配置:调用前需要在Graph Explorer中授予对应的权限,推荐使用
Directory.Read.All(Delegated权限),授予后记得点击「Consent」按钮完成权限确认,否则会返回权限不足的错误。 - 过滤自定义应用:如果只想查看你自己创建的企业应用(排除Microsoft自带的服务,比如Office 365、Azure相关应用),可以添加筛选参数:
其中GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=servicePrincipalType eq 'Application' and appOwnerOrganizationId ne 'f8cdef31-a31e-4b4a-93e4-5f571e91255a'f8cdef31-a31e-4b4a-93e4-5f571e91255a是微软官方租户ID,用来过滤掉微软自带的服务主体。
2. 获取所有应用的“主列表”
如果你的需求是整合应用注册和企业应用的完整数据,或者获取所有关联的应用信息,可以这样操作:
- 分别调用两个端点获取完整数据集:
- 应用注册:
GET https://graph.microsoft.com/v1.0/applications - 企业应用:
GET https://graph.microsoft.com/v1.0/servicePrincipals
- 应用注册:
- 关联两者数据:应用注册的
appId字段和其对应的服务主体的appId完全一致,可以通过这个字段把应用定义和租户实例关联起来。
比如要查询某个应用注册对应的所有企业应用实例,可用:
GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '你的应用注册appId'
内容的提问来源于stack exchange,提问作者user10009821
相关产品推荐
相关产品推荐

