Log di provisioning in Azure Active Directory

Azure Active Directory (Azure AD) si integra con diversi servizi di terze parti per effettuare il provisioning degli utenti nel tenant. Se è necessario risolvere un problema con un utente con provisioning, è possibile usare le informazioni acquisite nei log di provisioning di Azure AD per trovare una soluzione.

Sono disponibili anche due altri log attività per monitorare l'integrità del tenant:

  • Accessi : informazioni sugli accessi e sul modo in cui le risorse vengono usate dagli utenti.
  • Controllo : informazioni sulle modifiche applicate al tenant, ad esempio utenti e gestione dei gruppi o aggiornamenti applicati alle risorse del tenant.

Questo articolo offre una panoramica dei log di provisioning.

Che si può fare con questa funzionalità?

È possibile usare i log di provisioning per trovare risposte a domande quali:

  • Quali gruppi sono stati correttamente creati in ServiceNow?

  • Quali utenti sono stati rimossi correttamente da Adobe?

  • Quali utenti di Workday sono stati creati correttamente in Active Directory?

Come si accede ai log di provisioning?

Per visualizzare i log di provisioning, il tenant deve avere una licenza Di Azure AD Premium associata. Per aggiornare l'edizione di Azure AD, vedere Introduzione alla Azure Active Directory Premium.

I proprietari di applicazioni possono visualizzare i log per le proprie applicazioni. Per visualizzare i log di provisioning sono necessari i ruoli seguenti:

  • Lettore di report
  • Ruolo con autorizzazioni di lettura per la sicurezza
  • Operatore di sicurezza
  • Amministratore della protezione
  • Amministratore di applicazioni
  • Amministratore applicazione cloud
  • Amministratore globale
  • Utenti in un ruolo personalizzato con l'autorizzazione provisioningLogs

Per accedere ai dati del log di provisioning, sono disponibili le opzioni seguenti:

  • Selezionare Log di provisioning nella sezione Monitoraggio di Azure AD.

  • Trasmettere i log di provisioning in Monitoraggio di Azure. Questo metodo consente la conservazione dei dati estesa e la creazione di dashboard, avvisi e query personalizzate.

  • Eseguire una query sul Microsoft API Graph per i log di provisioning.

  • Scaricare i log di provisioning come file CSV o JSON.

Visualizzare i log di provisioning

Per visualizzare in modo più efficace il log di provisioning, dedicare alcuni momenti alla personalizzazione della visualizzazione per le proprie esigenze. È possibile specificare le colonne da includere e filtrare i dati per limitare le operazioni.

Personalizzare il layout

Il log di provisioning ha una visualizzazione predefinita, ma è possibile personalizzare le colonne.

  1. Selezionare Colonne dal menu nella parte superiore del log.
  2. Selezionare le colonne da visualizzare e selezionare il pulsante Salva nella parte inferiore della finestra.

Screenshot che mostra il pulsante per la personalizzazione delle colonne.

Questa area consente di visualizzare più campi o rimuovere campi già visualizzati.

Filtrare i risultati

Quando si filtrano i dati di provisioning, alcuni valori di filtro vengono popolati dinamicamente in base al tenant. Ad esempio, se non si dispone di eventi "create" nel tenant, non sarà disponibile un'opzione Crea filtro.

Il filtro Identity consente di specificare il nome o l'identità di cui si è preoccupati. Questa identità potrebbe essere un utente, un gruppo, un ruolo o un altro oggetto.

È possibile cercare in base al nome o all'ID dell'oggetto. L'ID varia in base allo scenario.

  • Se si esegue il provisioning di un oggetto da Azure AD a Salesforce, l'ID origine è l'ID oggetto dell'utente in Azure AD. L'ID di destinazione è l'ID dell'utente in Salesforce.
  • Se si esegue il provisioning da Workday ad Azure AD, l'ID origine è l'ID dipendente del ruolo di lavoro workday. L'ID di destinazione è l'ID dell'utente in Azure AD.

Nota

Il nome dell'utente potrebbe non essere sempre presente nella colonna Identity . Ci sarà sempre un ID.

Il filtro Date (Data) permette di definire un intervallo di tempo per i dati restituiti. I valori possibili sono:

  • Un mese
  • Sette giorni
  • 30 giorni
  • 24 ore
  • Intervallo di tempo personalizzato (configurare una data di inizio e una data di fine)

Il filtro Stato consente di selezionare:

  • Tutti
  • Operazione completata
  • Operazioni non riuscite
  • Operazione ignorata

Il filtro Azione consente di filtrare queste azioni:

  • Crea
  • Aggiornamento
  • Delete
  • Disabilita
  • Altro

Oltre ai filtri della visualizzazione predefinita, è possibile impostare i filtri seguenti.

  • ID processo: un ID processo univoco è associato a ogni applicazione per cui è stato abilitato il provisioning.

  • ID ciclo: l'ID ciclo identifica in modo univoco il ciclo di provisioning. È possibile condividere questo ID con il supporto del prodotto per cercare il ciclo in cui si è verificato questo evento.

  • ID modifica: l'ID modifica è un identificatore univoco per l'evento di provisioning. È possibile condividere questo ID con il supporto tecnico del prodotto per cercare l'evento di provisioning.

  • Sistema di origine: è possibile specificare da dove viene eseguito il provisioning dell'identità. Ad esempio, quando si esegue il provisioning di un oggetto da Azure AD a ServiceNow, il sistema di origine è Azure AD.

  • Sistema di destinazione: è possibile specificare dove viene eseguito il provisioning dell'identità. Ad esempio, quando si esegue il provisioning di un oggetto da Azure AD a ServiceNow, il sistema di destinazione è ServiceNow.

  • Applicazione: è possibile visualizzare solo i record delle applicazioni con un nome visualizzato contenente una stringa specifica.

Analizzare i log di provisioning

Quando si seleziona un elemento nella visualizzazione elenco di provisioning, si ottengono altri dettagli su questo elemento, ad esempio i passaggi eseguiti per effettuare il provisioning dell'utente e i suggerimenti per la risoluzione dei problemi. I dettagli sono raggruppati in quattro schede.

  • Passaggi: descrive i passaggi eseguiti per effettuare il provisioning di un oggetto. Il provisioning di un oggetto può essere costituito da quattro passaggi:

    1. Importare l'oggetto.
    2. Determinare se l'oggetto è nell'ambito.
    3. Trovare la corrispondenza dell'oggetto tra origine e destinazione.
    4. Effettuare il provisioning dell'oggetto (creare, aggiornare, eliminare o disabilitare).

    Screenshot che mostra i passaggi di provisioning nella scheda Passaggi.

  • Risoluzione dei problemi relativi & Raccomandazioni: fornisce il codice di errore e il motivo. Le informazioni sull'errore sono disponibili solo se si verifica un errore.

  • Proprietà modificate: mostra il valore precedente e il nuovo valore. Se non è presente alcun valore precedente, tale colonna è vuota.

  • Riepilogo: fornisce una panoramica di ciò che è successo e degli identificatori per l'oggetto nei sistemi di origine e di destinazione.

Scaricare i log come CSV o JSON

È possibile scaricare i log di provisioning per usarli in un secondo momento passando ai log nel portale di Azure e selezionando Scarica. Il file verrà filtrato in base ai criteri di filtro selezionati. Rendere i filtri il più specifici possibile per ridurre le dimensioni e il tempo del download.

Il download CSV include tre file:

  • ProvisioningLogs: scarica tutti i log, ad eccezione dei passaggi di provisioning e delle proprietà modificate.
  • ProvisioningLogs_ProvisioningSteps: contiene i passaggi di provisioning e l'ID di modifica. È possibile usare l'ID di modifica per aggiungere l'evento agli altri due file.
  • ProvisioningLogs_ModifiedProperties: contiene gli attributi modificati e l'ID modifica. È possibile usare l'ID di modifica per aggiungere l'evento agli altri due file.

Aprire il file JSON

Per aprire il file JSON, usare un editor di testo, ad esempio Microsoft Visual Studio Code. Visual Studio Code semplifica la lettura del file fornendo l'evidenziazione della sintassi. È anche possibile aprire il file JSON usando i browser in un formato non modificabile, ad esempio Microsoft Edge.

Prettify the JSON file (Prettify the JSON file)

Il file JSON viene scaricato in formato minimizzato per ridurre le dimensioni del download. Questo formato può rendere difficile la lettura del payload. Vedere due opzioni per prettifissire il file:

  • Usare Visual Studio Code per formattare il codice JSON.

  • Usare PowerShell per formattare il codice JSON. Questo script restituirà il codice JSON in un formato che include schede e spazi:

    $JSONContent = Get-Content -Path "<PATH TO THE PROVISIONING LOGS FILE>" | ConvertFrom-JSON

    $JSONContent | ConvertTo-Json > <PATH TO OUTPUT THE JSON FILE>

Analizzare il file JSON

Ecco alcuni comandi di esempio da usare con il file JSON usando PowerShell. È possibile usare qualsiasi linguaggio di programmazione con cui si ha familiarità.

Per prima cosa, leggere il file JSON eseguendo questo comando:

$JSONContent = Get-Content -Path "<PATH TO THE PROVISIONING LOGS FILE>" | ConvertFrom-JSON

È ora possibile analizzare i dati in base allo scenario. Ecco alcuni esempi:

  • Output di tutti gli ID processo nel file JSON:

    foreach ($provitem in $JSONContent) { $provitem.jobId }

  • Output di tutti gli ID di modifica per gli eventi in cui l'azione è stata "create":

    foreach ($provitem in $JSONContent) { if ($provItem.action -eq 'Create') { $provitem.changeId } }

Informazioni utili

Ecco alcuni suggerimenti e considerazioni per i report di provisioning:

  • Il portale di Azure archivia i dati di provisioning segnalati per 30 giorni se si dispone di un'edizione Premium e di 7 giorni se si dispone di un'edizione gratuita. È possibile pubblicare i log di provisioning in Log Analytics per la conservazione oltre 30 giorni.

  • È possibile usare l'attributo change ID come identificatore univoco, che può essere utile quando si interagisce con il supporto tecnico del prodotto, ad esempio.

  • È possibile che vengano visualizzati eventi ignorati per gli utenti che non rientrano nell'ambito. Questo comportamento è previsto, soprattutto quando l'ambito di sincronizzazione è impostato su tutti gli utenti e i gruppi. Il servizio valuterà tutti gli oggetti nel tenant, anche quelli che non sono nell'ambito.

  • I log di provisioning non mostrano le importazioni di ruoli (si applica a AWS, Salesforce e Zendesk). È possibile trovare i log per le importazioni del ruolo nei log di controllo.

Codici di errore

Usare la tabella seguente per comprendere meglio come risolvere gli errori presenti nei log di provisioning. Per eventuali codici di errore mancanti, inviare commenti e suggerimenti usando il collegamento nella parte inferiore di questa pagina.

Codice di errore Descrizione
Conflitto
EntryConflict
Correggere i valori degli attributi in conflitto in Azure AD o nell'applicazione. In alternativa, esaminare la configurazione dell'attributo corrispondente se l'account utente in conflitto deve essere corrispondente e assunto. Per altre informazioni sulla configurazione degli attributi corrispondenti, vedere la documentazione .
TooManyRequests L'app di destinazione ha rifiutato questo tentativo di aggiornamento dell'utente perché è sovraccaricata e riceve troppe richieste. Non c'è niente da fare. Questo tentativo verrà ritirato automaticamente. Microsoft è stata notificata anche di questo problema.
InternalServerError L'app di destinazione ha restituito un errore imprevisto. Un problema di servizio con l'applicazione di destinazione potrebbe impedire il funzionamento. Questo tentativo verrà eseguito automaticamente in 40 minuti.
InsufficientRights,
MethodNotAllowed,
NotPermitted,
Non autorizzata
Azure AD è stato autenticato con l'applicazione di destinazione ma non è stato autorizzato a eseguire l'aggiornamento. Esaminare le istruzioni fornite dall'applicazione di destinazione, insieme all'esercitazione relativa all'applicazione.
UnprocessableEntity L'applicazione di destinazione ha restituito una risposta imprevista. La configurazione dell'applicazione di destinazione potrebbe non essere corretta o un problema di servizio con l'applicazione di destinazione potrebbe impedire il funzionamento.
WebExceptionProtocolError Si è verificato un errore del protocollo HTTP durante la connessione all'applicazione di destinazione. Non c'è niente da fare. Questo tentativo verrà eseguito automaticamente in 40 minuti.
InvalidAnchor Un utente creato in precedenza o a cui corrisponde il servizio di provisioning non esiste più. Assicurarsi che l'utente esista. Per forzare una nuova corrispondenza di tutti gli utenti, usare il Microsoft API Graph per riavviare il processo.

Il riavvio del provisioning attiverà un ciclo iniziale, che può richiedere tempo per il completamento. Il riavvio del provisioning elimina anche la cache usata dal servizio di provisioning per il funzionamento. Ciò significa che tutti gli utenti e i gruppi nel tenant dovranno essere valutati nuovamente e alcuni eventi di provisioning potrebbero essere eliminati.
NotImplemented L'app di destinazione ha restituito una risposta imprevista. La configurazione dell'app potrebbe non essere corretta o un problema di servizio con l'app di destinazione potrebbe impedire il funzionamento. Esaminare le istruzioni fornite dall'applicazione di destinazione, insieme all'esercitazione relativa all'applicazione.
MandatoryFieldsMissing,
MissingValues
Non è stato possibile creare l'utente perché mancano i valori obbligatori. Correggere i valori degli attributi mancanti nel record di origine oppure esaminare la configurazione dell'attributo corrispondente per assicurarsi che i campi obbligatori non vengano omessi. Altre informazioni sulla configurazione degli attributi corrispondenti.
SchemaAttributeNotFound Impossibile eseguire l'operazione perché è stato specificato un attributo che non esiste nell'applicazione di destinazione. Vedere la documentazione sulla personalizzazione degli attributi e verificare che la configurazione sia corretta.
InternalError Si è verificato un errore interno del servizio all'interno del servizio di provisioning di Azure AD. Non c'è niente da fare. Questo tentativo verrà eseguito automaticamente in 40 minuti.
InvalidDomain Non è stato possibile eseguire l'operazione perché un valore di attributo contiene un nome di dominio non valido. Aggiornare il nome di dominio nell'utente o aggiungerlo all'elenco consentito nell'applicazione di destinazione.
Timeout Impossibile completare l'operazione perché l'applicazione di destinazione ha richiesto troppo tempo per rispondere. Non c'è niente da fare. Questo tentativo verrà eseguito automaticamente in 40 minuti.
LicenseLimitExceeded Impossibile creare l'utente nell'applicazione di destinazione perché non sono disponibili licenze per questo utente. Ottenere altre licenze per l'applicazione di destinazione. In alternativa, esaminare le assegnazioni utente e la configurazione del mapping degli attributi per assicurarsi che gli utenti corretti vengano assegnati con gli attributi corretti.
Voci DuplicateTargetEntries Impossibile completare l'operazione perché è stato trovato più di un utente nell'applicazione di destinazione con gli attributi corrispondenti configurati. Rimuovere l'utente duplicato dall'applicazione di destinazione o riconfigurare i mapping degli attributi.
DuplicateSourceEntries Impossibile completare l'operazione perché è stato trovato più di un utente con gli attributi di corrispondenza configurati. Rimuovere l'utente duplicato o riconfigurare i mapping degli attributi.
ImportSkipped Quando ogni utente viene valutato, il sistema tenta di importare l'utente dal sistema di origine. Questo errore si verifica comunemente quando l'utente che sta importando manca la proprietà corrispondente definita nei mapping degli attributi. Senza un valore presente nell'oggetto utente per l'attributo corrispondente, il sistema non può valutare le modifiche di ambito, corrispondenza o esportazione. La presenza di questo errore non indica che l'utente è nell'ambito, perché non è ancora stato valutato l'ambito per l'utente.
EntrySynchronizationSkipped Il servizio di provisioning ha eseguito una query sul sistema di origine e ha identificato l'utente. Non sono state eseguite altre azioni sull'utente e sono state ignorate. L'utente potrebbe non essere stato incluso nell'ambito oppure l'utente potrebbe già esistere nel sistema di destinazione senza ulteriori modifiche necessarie.
SystemForCrossDomainIdentity
ManagementMultipleEntriesInResponse
Richiesta GET per recuperare un utente o un gruppo ricevuto più utenti o gruppi nella risposta. Il sistema prevede di ricevere solo un utente o un gruppo nella risposta. Ad esempio, se si esegue una richiesta GET Group per recuperare un gruppo, fornire un filtro per escludere i membri e l'endpoint System for Cross-Domain Identity Management (SCIM) restituisce i membri, verrà visualizzato questo errore.
SystemForCrossDomainIdentity
ManagementServiceIncompatible
Il servizio di provisioning di Azure AD non è in grado di analizzare la risposta dall'applicazione di terze parti. Collaborare con lo sviluppatore di applicazioni per assicurarsi che il server SCIM sia compatibile con il client SCIM di Azure AD.
SchemaPropertyCanOnlyAcceptValue La proprietà nel sistema di destinazione può accettare un solo valore, ma la proprietà nel sistema di origine ha più. Assicurarsi di eseguire il mapping di un attributo a valore singolo alla proprietà che genera un errore, aggiornare il valore nell'origine per essere a valore singolo o rimuovere l'attributo dai mapping.

Passaggi successivi