Запросите Azure Resource Graph и получите список всех регистраций приложений, содержащих слово «test»

Мне нужно перечислить на панели мониторинга PowerBI все регистрации приложений, которые содержат слово «test» в имени и их владельца, с помощью запроса KQL и Azure Resource Graph. Он пробовал разные варианты из документации и выглядел примерно так, но безуспешно:

aadApplications
| project ApplicationId = appId, DisplayName, CreatedTime = createdDateTime
| join kind=leftouter (
    AadApplicationOwners
    | project ApplicationId = appId, Owner = userPrincipalName
) on ApplicationId
| summarize Owners = make_set(Owner), AppRoles = make_set(appRoleDisplayNames) by ApplicationId, DisplayName, CreatedTime
| project ApplicationID, Owners = tostring(Owners), DisplayName, AppRoles = tostring(AppRoles), CreatedTime

См. это reddit.com/r/AZURE/comments/qcv4h6/…

Rukmini 07.05.2024 08:56

Приложения AAD являются объектами в службе Azure Active Directory, а не в ресурсах Azure, поэтому вы не можете запрашивать их с помощью Resource Graph.

Rukmini 07.05.2024 08:57

Вы согласны запросить его через PowerShell, CLI или REST API?

Rukmini 07.05.2024 08:57

@Rukmini да, ты прав. Я не смог найти решения для прямого подключения из Power BI. Поэтому я извлек данные с помощью сценария Powershell, с помощью планировщика в учетную запись хранения, затем выполнил некоторую очистку данных и поместил отчет Power BI сверху. Спасибо!

Pirvu Georgian 08.05.2024 20:32
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
4
288
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обратите внимание: приложения AAD — это объекты в службе Azure Active Directory, а не ресурсы Azure. Обратитесь к этому блогу от AdamMarczakIO.

Следовательно, в качестве альтернативы вы можете использовать PowerShell, CLI или Rest API для запроса приложений Azure Active Directory.

Чтобы просмотреть список приложений, содержащих «тест» и владельцев приложений с подробной информацией, используйте приведенный ниже скрипт PowerShell:

Connect-MgGraph

# Fetch applications containing "test" in their name
$applications = Get-MgApplication | Where-Object { $_.DisplayName -like "*test*" }

$tableData = @()
foreach ($app in $applications) {
    
    $owners = Get-MgApplicationOwner -ApplicationId $app.Id -ErrorAction SilentlyContinue

    $ownerId = if ($owners) { $owners.Id } else { "" }
    $ownerName = if ($owners) { $owners.DisplayName } else { "" }

    $tableData += [PSCustomObject]@{
        "Application ID" = $app.Id
        "Application Name" = $app.DisplayName
        "Owner ID" = $ownerId
        "AppRoles" = $app.AppRoles
        "Created Time" = $app.CreatedDateTime
    }
}

$tableData | Format-Table -AutoSize "Application ID", "Application Name", "Owner ID", "AppRoles", "Created Time"

Выход:

Application ID Application Name Owner ID AppRoles Created Time   
XXX              Test             XXX      XXX     XXXX                                                                                                                                                                                                                               

Другие вопросы по теме