Condividi tramite


Raccogliere i log di Azure Active Directory B2C con Application Insights

Importante

A partire dal 1° maggio 2025, Azure AD B2C non sarà più disponibile per l'acquisto per i nuovi clienti. Altre informazioni sono disponibili nelle domande frequenti.

Prima di iniziare, utilizza il selettore Scegli un tipo di criterio nella parte superiore di questa pagina per scegliere il tipo di criterio che si sta configurando. Azure Active Directory B2C offre due metodi per definire il modo in cui gli utenti interagiscono con le applicazioni: tramite flussi utente predefiniti o tramite criteri personalizzati completamente configurabili. I passaggi necessari in questo articolo sono diversi per ogni metodo.

Questa funzionalità è disponibile solo per i criteri personalizzati. Per i passaggi di installazione, selezionare Criteri personalizzati nel selettore precedente.

Annotazioni

Questa funzionalità è disponibile in anteprima pubblica.

Questo articolo illustra la procedura per raccogliere i log da Active Directory B2C (Azure AD B2C) in modo da poter diagnosticare i problemi con i criteri personalizzati. servizio che consente di diagnosticare le eccezioni e di visualizzare i problemi di prestazioni delle applicazioni. Azure AD B2C supporta una funzionalità per l'invio di dati ad Application Insights.

I log attività dettagliati descritti di seguito devono essere abilitati SOLO durante lo sviluppo dei criteri personalizzati.

Avvertimento

Non impostare DeploymentMode su Development in ambienti di produzione. I log raccolgono tutte le attestazioni inviate ai/dai provider di identità. L'utente come sviluppatore si assume la responsabilità di tutti i dati personali raccolti nei log di Application Insights. Questi log dettagliati vengono raccolti solo quando i criteri vengono inseriti in MODALITÀ SVILUPPATORE.

Configurare Application Insights

Se non ne hai già uno, crea un'istanza di Application Insights nel tuo abbonamento.

Suggerimento

Una singola istanza di Application Insights può essere usata per più tenant di Azure AD B2C. Nella query è quindi possibile filtrare in base al tenant o al nome dei criteri. Per altre informazioni, vedere gli esempi di log in Application Insights .

Per usare un'istanza esistente di Application Insights nella sottoscrizione, seguire questa procedura:

  1. Accedi al portale di Azure.
  2. Assicurati di usare la directory Microsoft Entra che contiene la tua sottoscrizione di Azure e non quella della directory di Azure AD B2C. Selezionare l'icona Directory e sottoscrizioni nella barra degli strumenti del portale.
  3. Nella pagina Impostazioni del portale | Directory + Sottoscrizioni, individuare la directory di Microsoft Entra nell'elenco Nome directory e quindi selezionare Cambia.
  4. Aprire la risorsa di Application Insights creata in precedenza.
  5. Nella pagina Panoramica, registrare la Stringa di connessione

Per creare un'istanza di Application Insights nella sottoscrizione, seguire questa procedura:

  1. Accedi al portale di Azure.
  2. Assicurati di usare la directory Microsoft Entra che contiene la tua sottoscrizione di Azure e non quella della directory di Azure AD B2C. Selezionare l'icona Directory e sottoscrizioni nella barra degli strumenti del portale.
  3. Nella pagina Impostazioni del portale | Directory + Sottoscrizioni, individuare la directory di Microsoft Entra nell'elenco Nome directory e quindi selezionare Cambia.
  4. Selezionare Crea una risorsa nel menu di spostamento a sinistra.
  5. Cercare e selezionare Application Insights, quindi selezionare Crea.
  6. Completare il modulo, selezionare Rivedi e crea e quindi selezionare Crea.
  7. Al termine della distribuzione selezionare Vai alla risorsa.
  8. Nel menu Configura in Application Insights selezionare Proprietà.
  9. Registrare la stringa di connessione da usare in un passaggio successivo.

Configurare i criteri personalizzati

  1. Aprire il file relying party (RP), ad esempio SignUpOrSignin.xml.

  2. Aggiungere gli attributi seguenti all'elemento <TrustFrameworkPolicy> :

    DeploymentMode="Development"
    UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights"
    
  3. Se non esiste già, aggiungere un <UserJourneyBehaviors> nodo figlio al <RelyingParty> nodo. Deve trovarsi dopo <DefaultUserJourney ReferenceId="UserJourney Id" from your extensions policy, or equivalent (for example:SignUpOrSigninWithAAD" />. Per un ordine completo degli elementi figlio RelyingParty, vedere Informazioni di riferimento sullo schema RelyingParty.

  4. Aggiungere il nodo seguente come elemento figlio dell'elemento <UserJourneyBehaviors> . Assicurarsi di sostituire {Your Application Insights Key} con la stringa di connessione di Application Insights registrata in precedenza.

    <JourneyInsights TelemetryEngine="ApplicationInsights" ConnectionString="{Your Application Insights ConnectionString}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    
    • DeveloperMode="true" indica ad ApplicationInsights di affrettare il flusso di telemetria tramite la pipeline di elaborazione. Buono per lo sviluppo, ma vincolato a volumi elevati. Nell'ambiente di produzione impostare DeveloperMode su false.
    • ClientEnabled="true" invia lo script di Application Insights lato client per tenere traccia della visualizzazione della pagina e degli errori lato client. È possibile visualizzare questa opzione nella tabella browserTimings nel portale di Application Insights. Impostando ClientEnabled= "true", si aggiunge Application Insights allo script di pagina e si ottengono tempi di caricamento delle pagine e chiamate AJAX, conteggi, dettagli delle eccezioni del browser e errori AJAX e conteggi di utenti e sessioni. Questo campo è facoltativo ed è impostato su per false impostazione predefinita.
    • ServerEnabled="true" invia il codice JSON UserJourneyRecorder esistente come evento personalizzato ad Application Insights.

    Per esempio:

    <TrustFrameworkPolicy
      ...
      TenantId="fabrikamb2c.onmicrosoft.com"
      PolicyId="SignUpOrSignInWithAAD"
      DeploymentMode="Development"
      UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights"
    >
    ...
    <RelyingParty>
      <DefaultUserJourney ReferenceId="UserJourney ID from your extensions policy, or equivalent (for example: SignUpOrSigninWithAzureAD)" />
      <Endpoints>
         <!--points to refresh token journey when app makes refresh token request-->
         <Endpoint Id="Token" UserJourneyReferenceId="RedeemRefreshToken" />
      </Endpoints>
      <UserJourneyBehaviors>
        <JourneyInsights TelemetryEngine="ApplicationInsights" ConnectionString="{Your Application Insights ConnectionString}" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
      </UserJourneyBehaviors>
      ...
    </TrustFrameworkPolicy>
    
  5. Caricare i criteri.

Visualizzare i log in Application Insights

Si verifica un breve ritardo, in genere inferiore a cinque minuti, prima di poter visualizzare nuovi log in Application Insights.

  1. Aprire la risorsa di Application Insights creata nel portale di Azure.
  2. Nella pagina Panoramica, selezionare Log.
  3. Aprire una nuova scheda in Application Insights.

Ecco un elenco di query che è possibile usare per visualizzare i log:

Quesito Descrizione
traces Ottenere tutti i log generati da Azure AD B2C
traces | where timestamp > ago(1d) Ottenere tutti i log generati da Azure AD B2C per l'ultimo giorno.
traces | where message contains "exception" | where timestamp > ago(2h) Ottenere tutti i log con errori nelle ultime due ore.
traces | where customDimensions.Tenant == "contoso.onmicrosoft.com" and customDimensions.UserJourney == "b2c_1a_signinandup" Ottenere tutti i log generati dal tenant contoso.onmicrosoft.com di Azure AD B2C con il percorso utente b2c_1a_signinandup.
traces | where customDimensions.CorrelationId == "aaaa0000-bb11-2222-33cc-444444dddddd" Ottenere tutti i log generati da Azure AD B2C per un ID di correlazione. Sostituire l'ID correlazione con il proprio ID correlazione.

Le voci possono essere lunghe. Esportare in CSV per un'occhiata più da vicino.

Per altre informazioni sull'esecuzione di query, vedere Panoramica delle query di log in Monitoraggio di Azure.

Vedere i log nell'estensione di VS Code

È consigliabile installare l'estensione Azure AD B2C per VS Code. Con l'estensione Azure AD B2C, i log vengono organizzati in base al nome del criterio, all'ID di correlazione (application insights presenta la prima cifra dell'ID di correlazione) e al timestamp del log. Questa funzionalità consente di trovare il log pertinente in base al timestamp locale e di visualizzare il percorso utente eseguito da Azure AD B2C.

Annotazioni

La community ha sviluppato l'estensione VS Code per aiutare gli utenti a implementare e gestire soluzioni Azure AD B2C. L'estensione non è supportata da Microsoft e viene resa disponibile rigorosamente as-is.

Impostare l'accesso all'API di Application Insights

Dopo aver configurato Application Insights e aver configurato i criteri personalizzati, è necessario ottenere l'ID API di Application Insights e creare la chiave API. Sia l'ID API che la chiave API vengono usati dall'estensione Azure AD B2C per leggere gli eventi di Application Insights (telemetrie). Le chiavi API devono essere gestite come password. Mantieni il segreto.

Annotazioni

La stringa di connessione di Application Insights creata in precedenza viene usata da Azure AD B2C per inviare telemetrie ad Application Insights. Usi la stringa di connessione solo nei criteri di Azure AD B2C, non nell'estensione di Visual Studio Code.

Per ottenere l'ID e la chiave di Application Insights:

  1. Nel portale di Azure aprire la risorsa di Application Insights per l'applicazione.

  2. Seleziona Configura e quindi Accesso API.

  3. Copiare l'ID applicazione

  4. Selezionare Crea chiave API

  5. Selezionare la casella Lettura dati di telemetria .

  6. Copiare la chiave prima di chiudere il pannello Crea chiave API e salvarla in un punto sicuro. Se si perde la chiave, è necessario crearne un'altra.

    Screenshot che illustra come creare la chiave di accesso api.

Configurare l'estensione Azure AD B2C VS Code

Dopo aver ottenuto l'ID API e la chiave di Azure Application Insights, è possibile configurare l'estensione VS Code per leggere i log. L'estensione Azure AD B2C VS Code offre due ambiti per le impostazioni:

  • Impostazioni globali utente : impostazioni che si applicano a livello globale a qualsiasi istanza di VS Code aperta.
  • Impostazioni dell'area di lavoro- Impostazioni archiviate all'interno dell'area di lavoro e si applicano solo quando l'area di lavoro viene aperta (usando la cartella aperta di VS Code).
  1. Fare clic sull'icona Impostazioni in Esplora tracce di Azure AD B2C.

    Screenshot che illustra la selezione delle impostazioni di Application Insights.

  2. Specificare l'ID e la chiave di Azure Application Insights.

  3. Fare clic su Salva

Dopo aver salvato le impostazioni, i log di Application Insights vengono visualizzati nella finestra Traccia di Azure AD B2C (App Insights).

Screenshot dell'estensione Azure AD B2C per vscode, che presenta la traccia di Azure Application Insights.

Configurare Application Insights nell'ambiente di produzione

Per migliorare le prestazioni dell'ambiente di produzione e migliorare l'esperienza utente, è importante configurare i criteri per ignorare i messaggi non importanti. È anche necessario assicurarsi di non registrare informazioni personali . Utilizzare la seguente configurazione negli ambienti di produzione affinché i log non vengano inviati ad Application Insights.

  1. Impostare l'attributo DeploymentMode di TrustFrameworkPolicy su Production.

    <TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06" PolicySchemaVersion="0.3.0.0"
    TenantId="yourtenant.onmicrosoft.com"
    PolicyId="B2C_1A_signup_signin"
    PublicPolicyUri="http://yourtenant.onmicrosoft.com/B2C_1A_signup_signin"
    DeploymentMode="Production"
    UserJourneyRecorderEndpoint="urn:journeyrecorder:applicationinsights">
    
  2. Impostare DeveloperMode di JourneyInsights su false.

    <UserJourneyBehaviors>
      <JourneyInsights TelemetryEngine="ApplicationInsights" ConnectionString="{Your Application Insights ConnectionString}" DeveloperMode="false" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
    </UserJourneyBehaviors>
    
  3. Carica e testa la tua politica.

Passaggi successivi