获取 Azure 条件访问策略中应用程序 ID 的显示名称

问题描述 投票:0回答:1

获取所有使用的 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 默认应用程序。 找到这个链接, https://github.com/emilyvanputten/Microsoft-Owned-Enterprise-Applications/blob/main/Microsoft%20Owned%20Enterprise%20Applications%20Overview.md 有帮助但不完整。

关于如何使用 Graph 或 (Azure) PowerShell 模块获取 Azure 默认应用程序列表有什么想法吗?

谢谢...

azure powershell charts azure-active-directory
1个回答
1
投票

我的应用程序中包含一些条件访问策略,如下所示:

enter image description here

要获取所有 Azure 条件访问策略中应用程序 ID 的显示名称,您可以使用以下示例 PowerShell 脚本:

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

# Iterate through each policy to extract application IDs
foreach ($policy in $response.value) {
    $applicationIds = $policy.conditions.applications.includeApplications
    $AppIds += $applicationIds | Where-Object { $_ -notin $AppIds }
}

$output = @()

foreach ($appId in $AppIds) {

    $servicePrincipals = Get-MgServicePrincipal -Filter "appId eq '$appId'"
    foreach ($sp in $servicePrincipals) {
        $output += [PSCustomObject]@{
            'Application DisplayName' = $sp.displayName
            'AppId' = $sp.appId
        }
    }
}

$output | Format-Table -AutoSize

回复:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.