Provisioning dei log in Azure Active Directory

In quanto amministratore IT, l'utente vuole conoscere le modalità di funzionamento dell'ambiente IT. Le informazioni sull'integrità del sistema consentono di valutare se e come è necessario rispondere a potenziali problemi.

Per supportare questo obiettivo, il portale di Azure Active Directory consente di accedere a tre log attività:

  • Accessi: informazioni sugli accessi e sul modo in cui le risorse vengono usate dagli utenti.
  • Audit : informazioni sulle modifiche applicate al tenant, ad esempio utenti e gestione dei gruppi o aggiornamenti applicati alle risorse del tenant.
  • Provisioning: attività eseguite dal servizio di provisioning, ad esempio la creazione di un gruppo in ServiceNow o un utente importato da Workday.

Questo articolo offre una panoramica dei log di provisioning.

Cosa si può fare con esso?

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

  • Quali gruppi sono stati creati correttamente in ServiceNow?

  • Quali utenti sono stati rimossi correttamente da Adobe?

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

Chi può accedervi?

Questi utenti possono accedere ai dati nei log di provisioning:

  • Proprietari di applicazioni (log per le proprie applicazioni)

  • Utenti nei ruoli Amministratore della sicurezza, Ruolo con autorizzazioni di lettura per la sicurezza, Lettore report, Operatore di sicurezza, Amministratore applicazioni e Amministratore applicazioni cloud

  • Utenti in un ruolo personalizzato con l'autorizzazione provisioningLogs

  • Amministratori globali

Quale licenza Azure AD è necessaria?

Per visualizzare il report delle attività di provisioning, al tenant deve essere associata una licenza Azure AD Premium. Per aggiornare l'edizione Azure AD, vedere Introduzione alle Azure Active Directory Premium.

Come è possibile accedervi?

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

  • Portale di Azure

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

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

  • Download dei log di provisioning come file CSV o JSON.

Dove si trova nel portale di Azure?

Il portale di Azure offre diverse opzioni per accedere al log. Ad esempio, nel menu Azure Active Directory è possibile aprire il log nella sezione Monitoraggio.

Open provisioning logs

È anche possibile accedere direttamente ai log di accesso usando questo collegamento: https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/SignIns

È possibile accedere ai log di provisioning selezionando Log di provisioning nella sezione Monitoraggio del riquadro Azure Active Directory nel portale di Azure. La visualizzazione di alcuni record di provisioning nel portale può richiedere fino a due ore.

Screenshot that shows selections for accessing provisioning logs.

Qual è la visualizzazione predefinita?

Un log di provisioning ha una visualizzazione elenco predefinita che mostra:

  • Identità
  • Azione
  • Sistema di origine
  • Sistema di destinazione
  • Stato
  • Data

Screenshot that shows default columns in a provisioning log.

È possibile personalizzare la visualizzazione elenco selezionando Colonne sulla barra degli strumenti.

Screenshot that shows the button for customizing columns.

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

Screenshot that shows available columns with some selected.

Selezionare un elemento nella visualizzazione elenco per ottenere maggiori informazioni dettagliate.

Screenshot that shows detailed information.

Filtrare le attività di provisioning

È possibile filtrare i dati di provisioning. Alcuni valori di filtro vengono popolati dinamicamente in base al tenant. Se, ad esempio, non sono presenti eventi di "creazione" nel tenant, non sarà disponibile un'opzione Crea filtro.

Nella visualizzazione predefinita è possibile selezionare i filtri seguenti:

  • Identità
  • Data
  • Status
  • Azione

Screenshot that shows filter values.

Il filtro Identità consente di specificare il nome o l'identità di cui si è a cuore. Questa identità può essere un utente, un gruppo, un ruolo o un altro oggetto.

È possibile eseguire la ricerca in base al nome o all'ID dell'oggetto. L'ID varia in base allo scenario. Ad esempio, quando si effettua 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. Quando si esegue il provisioning da Workday ad Active Directory, l'ID di origine è l'ID dipendente del ruolo di lavoro di Workday.

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:

  • 1 mese
  • 7 giorni
  • 30 giorni
  • 24 ore
  • Intervallo di tempo personalizzato

Quando si seleziona un intervallo di tempo personalizzato, è possibile configurare una data di inizio e una data di fine.

Il filtro Stato consente di selezionare:

  • Tutto
  • Success
  • Operazioni non riuscite
  • Ignorato

Il filtro Azione consente di filtrare queste azioni:

  • Creare
  • Aggiornamento
  • Elimina
  • Disabilita
  • Altri

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

Screenshot that shows fields that you can add as filters.

  • 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 tecnico 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.

Dettagli del provisioning

Quando si seleziona un elemento nella visualizzazione elenco di provisioning, si ottengono altri dettagli su questo elemento. I dettagli vengono raggruppati nelle schede seguenti.

Screenshot that shows four tabs that contain provisioning details.

  • 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 shows the provisioning steps on the Steps tab.

  • Risoluzione dei problemi & Consigli: 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 esiste alcun valore precedente, la 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 un uso successivo passando ai log nel portale di Azure e selezionando Scarica. Il file verrà filtrato in base ai criteri di filtro selezionati. Rendere i filtri 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 modifica. È possibile usare l'ID modifica per partecipare all'evento con gli altri due file.
  • ProvisioningLogs_ModifiedProperties: contiene gli attributi modificati e l'ID modifica. È possibile usare l'ID modifica per partecipare all'evento con gli altri due file.

Aprire il file JSON

Per aprire il file JSON, usare un editor di testo, ad esempio Microsoft Visual Studio Codice. 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.

Prettificare il file JSON

Il file JSON viene scaricato in formato minified per ridurre le dimensioni del download. Questo formato può rendere il payload difficile da leggere. Per prettivare il file, vedere due opzioni:

  • 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 è comodi.

Prima di tutto, 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 }

  • Restituisce 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 il provisioning dei report:

  • Il portale di Azure archivia i dati di provisioning segnalati per 30 giorni se si dispone di un'edizione Premium e 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. Questo è utile quando si interagisce con il supporto tecnico del prodotto, ad esempio.

  • È possibile che gli eventi ignorati siano visualizzati per gli utenti che non sono 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 di ruoli 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, fornire commenti e suggerimenti usando il collegamento nella parte inferiore di questa pagina.

Codice di errore Descrizione
Conflitto, EntryConflict Correggere i valori dell'attributo in conflitto in Azure AD o nell'applicazione. In alternativa, esaminare la configurazione dell'attributo corrispondente se l'account utente in conflitto doveva 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 aggiornare l'utente perché è sovraccaricato e riceve troppe richieste. Non c'è niente da fare. Questo tentativo verrà ritirato automaticamente. Microsoft ha inoltre informato 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.
InsufficientiRights, MetodoNotAllowed, NotPermitted, Non autorizzato Azure AD autenticato con l'applicazione di destinazione, ma non è stato autorizzato a eseguire l'aggiornamento. Esaminare tutte le istruzioni fornite dall'applicazione di destinazione, insieme all'esercitazione relativa all'applicazione.
Non elaborabileEntity 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 corrispondente al servizio di provisioning non esiste più. Assicurarsi che l'utente esista. Per forzare una nuova corrispondenza di tutti gli utenti, usare microsoft API Graph per riavviare il processo.

Il riavvio del provisioning attiverà un ciclo iniziale, che può richiedere tempo per completare. Il riavvio del provisioning elimina anche la cache usata dal servizio di provisioning per funzionare. Ciò significa che tutti gli utenti e i gruppi nel tenant dovranno essere valutati di nuovo 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 tutte le istruzioni fornite dall'applicazione di destinazione, insieme all'esercitazione relativa all'applicazione.
MandatoryFieldsMissing, MissingValues Impossibile creare l'utente perché mancano i valori obbligatori. Correggere i valori degli attributi mancanti nel record di origine o 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 Azure AD. Non c'è niente da fare. Questo tentativo verrà eseguito automaticamente in 40 minuti.
InvalidDomain Impossibile eseguire l'operazione perché un valore dell'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 richiede 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. Si noti che 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.
SystemForCrossDomainIdentityManagementMultipleEntriesInResponse 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 per recuperare un gruppo e fornire un filtro per escludere i membri e l'endpoint SYSTEM for Cross-Domain Identity Management (SCIM) restituisce i membri, verrà visualizzato questo errore.
SystemForCrossDomainIdentityManagementServiceIncompatible Il servizio di provisioning Azure AD non è in grado di analizzare la risposta dall'applicazione di terze parti. Collaborare con lo sviluppatore dell'applicazione per assicurarsi che il server SCIM sia compatibile con il client SCIM 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 singolo attributo con valore alla propoerty che genera un errore, aggiornare il valore nell'origine per essere a valore singolo o rimuovere l'attributo dai mapping.

Passaggi successivi