You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Azure条件访问策略中应用ID的显示名称与默认应用列表

问题:获取Azure默认应用列表以匹配CA策略中的应用ID与显示名称

用户通过以下Graph请求获取条件访问(CA)策略:

$uri = "https://graph.microsoft.com/beta/identity/conditionalAccess/policies"
$response = Invoke-MgGraphRequest -Uri $uri -Method GET -Headers $CustomHeader -OutputType PSObject

但$response.value[0].conditions.applications.includeApplications仅返回应用ID,无法直接获取显示名称;使用Get-MgApplication -all只能拿到自定义应用,取不到Azure默认应用,需要通过Graph或Azure PowerShell模块获取完整的默认应用列表来匹配ID和名称。


解决方案1:用Microsoft Graph API获取默认企业应用

Azure默认应用属于**服务主体(servicePrincipal)**范畴,不是自定义应用(application),直接调用servicePrincipal相关接口即可获取:

  • 调用以下Graph接口,筛选微软发布的启用状态应用:
GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=publisherName eq 'Microsoft Corporation' and accountEnabled eq true
  • 要更精准筛选,可添加servicePrincipalType eq 'Application'条件,排除其他类型的服务主体
  • 返回结果里,appId对应CA策略中的应用ID,displayName就是应用显示名称

解决方案2:用Azure PowerShell模块获取

使用Get-AzADServicePrincipal命令(需安装Az.Resources模块),筛选微软发布的服务主体:

# 获取所有微软发布的启用状态企业应用
Get-AzADServicePrincipal -Filter "PublisherName eq 'Microsoft Corporation' and AccountEnabled eq true" | Select-Object AppId, DisplayName

如果要批量匹配CA策略里的应用ID,可先构建映射哈希表,快速查找:

# 构建应用ID到显示名称的映射表
$appMap = @{}
Get-AzADServicePrincipal -Filter "PublisherName eq 'Microsoft Corporation' and AccountEnabled eq true" | ForEach-Object {
    $appMap[$_.AppId] = $_.DisplayName
}

# 遍历CA策略,匹配每个应用ID对应的名称
$response.value | ForEach-Object {
    $caPolicy = $_
    $caPolicy.conditions.applications.includeApplications | ForEach-Object {
        [PSCustomObject]@{
            策略名称 = $caPolicy.displayName
            应用ID   = $_
            应用名称 = $appMap[$_] ?? "未找到匹配名称"
        }
    }
}

内容的提问来源于stack exchange,提问作者Sean21735

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 09:43:13