Esempi dell'API di creazione report di Azure Active DirectoryAzure Active Directory reporting audit API samples

Questo articolo fa parte di una raccolta di articoli sull'API di creazione report di Azure Active Directory.This article is part of a collection of articles about the Azure Active Directory reporting API.
La creazione di report di Azure Active Directory fornisce un'API che consente di accedere ai dati di controllo tramite codice o strumenti correlati.Azure AD reporting provides you with an API that enables you to access audit data using code or related tools. L'obiettivo di questo articolo è fornire codice di esempio per l'API di controllo.The scope of this article is to provide you with sample code for the audit API.

Vedere:See:

Per domande, problemi o suggerimenti, contattare la Guida per la creazione di report AAD.For questions, issues or feedback, please contact AAD Reporting Help.

prerequisitiPrerequisites

Prima di poter usare gli esempi contenuti in questo articolo, è necessario completare i prerequisiti di accesso all'API di creazione report di Azure AD.Before you can use the samples in this article, you need to complete the prerequisites to access the Azure AD reporting API.

Problema notoKnown issue

L'autenticazione dell'applicazione non funziona se il tenant si trova nell'area dell'Unione Europea.App Auth will not work if your tenant is in the EU region. Per l'accesso all'API di controllo come soluzione alternativa fino a quando non si risolve il problema, usare l'autenticazione degli utenti.Please use User Auth for accessing the Audit API as a workaround until we fix the issue.

Script di PowerShellPowerShell script


# This script will require the Web Application and permissions setup in Azure Active Directory
$clientID       = "<appid>"             # ApplicationId
$clientSecret   = "<key>"         # Should be a ~44 character string insert your info here
$loginURL       = "https://login.windows.net/"
$tenantdomain   = "<domain>"            # For example, contoso.onmicrosoft.com
$msgraphEndpoint = "https://graph.microsoft.com"
$countOfAuditDocsToBeSavedInAFile = 2000

# Get an Oauth 2 access token based on client id, secret and tenant domain
$body       = @{grant_type="client_credentials";resource=$msgraphEndpoint;client_id=$clientID;client_secret=$clientSecret}
$oauth      = Invoke-RestMethod -Method Post -Uri $loginURL/$tenantdomain/oauth2/token?api-version=1.0 -Body $body

if ($oauth.access_token -ne $null) {
    $headerParams = @{'Authorization'="$($oauth.token_type) $($oauth.access_token)"}

    $url = "$msgraphEndpoint/beta/auditLogs/directoryAudits"
    Write-Output "Fetching data using Uri: $url"
    $i=0
    $docCount=0
    Do{
        $myReport = (Invoke-WebRequest -UseBasicParsing -Headers $headerParams -Uri $url)
        $jsonReport = ($myReport.Content | ConvertFrom-Json).value
        $fetchedRecordCount = $jsonReport.Count
        $docCount = $docCount + $fetchedRecordCount
        $totalFetchedRecordCount = $totalFetchedRecordCount + $fetchedRecordCount
        Write-Output "Fetched $fetchedRecordCount records and saved into Audits$i.json"
        if($docCount -le $countOfAuditDocsToBeSavedInAFile)
        {
            $myReport.Content | Out-File -FilePath Audits$i.json -append  -Force        
        }
        else
        {           
            $docCount=0
            $i = $i+1
        }

        #Get url from next link
        $url = ($myReport.Content | ConvertFrom-Json).'@odata.nextLink'         
    }while($url -ne $null)
    Write-Output "Total Fetched record count is : $totalFetchedRecordCount"

} else {
    Write-Host "ERROR: No Access Token"
}

Esecuzione dello script di PowerShellExecuting the PowerShell script

Una volta modificato lo script, eseguirlo e verificare che vengano restituiti i dati corretti dal report Log di controllo.Once you finish editing the script, run it and verify that the expected data from the Audit logs report is returned.

Lo script restituisce l'output del report di controllo in formato JSON.The script returns output from the audit report in JSON format. Crea anche un file Audits.json con lo stesso output.It also creates an Audits.json file with the same output. È possibile provare a modificare lo script per restituire i dati di altri report e rimuovere i commenti per i formati di output non necessari.You can experiment by modifying the script to return data from other reports, and comment out the output formats that you do not need.

Passaggi successiviNext steps