Condividi tramite


Informazioni su come integrare il provisioning con i log di Monitoraggio di Azure

Il provisioning si integra con i log di Monitoraggio di Azure e Log Analytics. Monitoraggio di Azure permette di eseguire operazioni come creare cartelle di lavoro, chiamate anche dashboard, archiviare i log di provisioning per più di 30 giorni e creare query e avvisi personalizzati. Questo articolo mostra come i log di provisioning si integrino con i log di Monitoraggio di Azure. Per altre informazioni sul funzionamento generale dei log di provisioning, vedere Log di provisioning.

Abilitare i log di provisioning

Se non si ha già familiarità con Monitoraggio di Azure e Log Analytics, esplorare le risorse seguenti e quindi tornare a informazioni sull'integrazione dei log di provisioning delle applicazioni con i log di Monitoraggio di Azure.

Per integrare i log di provisioning con i log di Monitoraggio di Azure:

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra almeno come Amministratore della sicurezza.

  2. Creare un'area di lavoro Log Analytics.

  3. Passare a Identità> Monitoraggio e stato>Impostazioni di diagnostica .

    Screenshot dell'accesso alle impostazioni di diagnostica.

  4. Scegliere i log da trasmettere, selezionare l'opzione Invia a area di lavoro Log Analytics e completare i campi.

    Screenshot dell'abilitazione dei log di provisioning delle applicazioni.

  5. Passare a Identità>Monitoraggio e integrità>Log Analytics e avviare il processo di query dei dati.

Nota

L'abilitazione dell'integrazione può richiedere del tempo prima che i log vengano visualizzati in Log Analytics. Se viene visualizzato un errore che indica che la sottoscrizione non è registrata per l'uso di microsoft.insights, ripetere il controllo dopo alcuni minuti.

Informazioni sui dati

Il flusso di dati sottostante che il provisioning invia ai visualizzatori log è quasi identico. I log di Monitoraggio di Azure ottengono quasi lo stesso flusso dell'interfaccia di amministrazione di Microsoft Entra e dell'API Microsoft Graph. Esistono alcune differenze nei campi di log, come descritto nella tabella seguente. Log Analytics potrebbe visualizzare più eventi rispetto ai log nell'interfaccia di amministrazione di Microsoft Entra. Per altre informazioni su questi campi, vedere List provisioningObjectSummary.

Log di Monitoraggio di Azure Interfaccia utente del portale di Azure Istanza app
errorDescription reason resultDescription
stato resultType resultType
activityDateTime TimeGenerated TimeGenerated

Cartelle di lavoro di Microsoft Entra

Le cartelle di lavoro di Microsoft Entra identity offrono un canvas flessibile per l'analisi dei dati. Consentono anche di creare report visivi avanzati all'interno del portale di Azure. Per altre informazioni, vedere Cartelle di lavoro di Microsoft Entra.

Le informazioni dettagliate sull'analisi del provisioning e sul provisioning sono due delle cartelle di lavoro predefinite disponibili. Per visualizzare i dati, assicurarsi che tutti i filtri (timeRange, jobID, appName) siano popolati. Verificare anche che sia stato effettuato il provisioning dell'app, altrimenti i log non conterranno alcun dato.

Cartelle di lavoro di provisioning delle applicazioni

Dashboard di provisioning delle applicazioni

Query personalizzate

È possibile creare query personalizzate e visualizzare i dati nelle cartelle di lavoro. Per informazioni su come, vedere Introduzione alle query di log in Monitoraggio di Azure e query di log in Monitoraggio di Azure.

Ecco alcuni esempi per iniziare a usare le query di log di provisioning delle applicazioni.

Eseguire una query sui log per un utente in base al suo ID nel sistema di origine:

AADProvisioningLogs
| extend SourceIdentity = parse_json(SourceIdentity)
| where tostring(SourceIdentity.Id) == "49a4974bb-5011-415d-b9b8-78caa7024f9a"

Riepilogare il conteggio per ErrorCode:

AADProvisioningLogs
| summarize count() by ErrorCode = ResultSignature

Riepilogare il numero di eventi al giorno per azione:

AADProvisioningLogs
| where TimeGenerated > ago(7d)
| summarize count() by Action, bin(TimeGenerated, 1d)

Prendere in esame 100 eventi e proprietà chiave del progetto:

AADProvisioningLogs
| extend SourceIdentity = parse_json(SourceIdentity)
| extend TargetIdentity = parse_json(TargetIdentity)
| extend ServicePrincipal = parse_json(ServicePrincipal)
| where tostring(SourceIdentity.identityType) == "Group"
| project tostring(ServicePrincipal.Id), tostring(ServicePrincipal.Name), ModifiedProperties, JobId, Id, CycleId, ChangeId, Action, SourceIdentity.identityType, SourceIdentity.details, TargetIdentity.identityType, TargetIdentity.details, ProvisioningSteps
| take 100

Recuperare i gruppi con i membri ignorati a causa di problemi durante la risoluzione dei riferimenti.

AADProvisioningLogs
| where TimeGenerated >= ago(10d)
| where JobId == "Azure2Azure.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend SourceIdentity = parse_json(SourceIdentity)
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| where tostring(SourceIdentity.identityType) == "Group"
| where ProvisioningSteps matches regex "UnableToResolveReferenceAttributeValue"
| parse tostring(ProvisioningSteps.[2].description) with "We were unable to assign " userObjectId " as the members of " groupDisplayName "." *
| project groupDisplayName, userObjectId,  JobId
| take 100

Riepilogare le azioni in base all'applicazione.

AADProvisioningLogs
| where TimeGenerated > ago(30d)
| where JobId == "Azure2Azure.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| extend eventName = tostring(ProvisioningSteps.[-1].name)
| summarize count() by eventName, JobId
| order by JobId asc
| take 5

Identificare i picchi in operazioni specifiche.

AADProvisioningLogs
| where TimeGenerated > ago(30d)
| where JobId == "scim.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| extend eventName = tostring(ProvisioningSteps.[-1].name)
| summarize count() by eventName, bin(TimeGenerated, 1d)
| render timechart

Avvisi personalizzati

Monitoraggio di Azure consente di configurare avvisi personalizzati in modo da ricevere notifiche sugli eventi chiave correlati al provisioning. Ad esempio, è possibile scegliere di ricevere un avviso in caso di picchi di errori. oppure di picchi relativi alle operazioni di disabilitazione o eliminazione. Un altro esempio in cui è possibile ricevere avvisi è il caso in cui non venga effettuato alcun provisioning, il che indica un errore.

Per altre informazioni sugli avvisi, vedere Avvisi dei log di Monitoraggio di Azure.

Avviso relativo a un picco di errori. Sostituire jobID con jobID dell'applicazione.

Screenshot di un avviso quando si verifica un picco di errori.

Potrebbe verificarsi un problema che causava l'arresto dell'esecuzione del servizio di provisioning. Usare l'avviso seguente per determinare quando non sono presenti eventi di provisioning in un determinato intervallo di tempo.

Screenshot di un messaggio di errore del log di provisioning.

Avviso relativo a un picco di operazioni di disabilitazione o eliminazione.

Screenshot di un avviso quando si verifica un picco di disabilitazioni o eliminazioni.

Contributi alla community

Stiamo adottando un approccio open source e basato sulla community per le query e i dashboard di provisioning delle applicazioni. Creare una query, un avviso o una cartella di lavoro che si ritiene possa essere utile per altri utenti, quindi pubblicarla nel repository GitHub AzureMonitorCommunity. È possibile inviare un messaggio di posta elettronica con un collegamento. Le query e i dashboard vengono esaminati e pubblicati nel servizio in modo che anche altri utenti ne possano usufruire. Contattare provisioningfeedback@microsoft.com.

Passaggi successivi