Registrazione in MSAL per Java

Le app Libreria di Autenticazione Microsoft (MSAL) generano messaggi di log che consentono di diagnosticare i problemi. Un'app può configurare la registrazione con alcune righe di codice e avere un controllo personalizzato sul livello di dettaglio e se i dati personali e dell'organizzazione vengono registrati o meno. È consigliabile creare un'implementazione della registrazione MSAL e fornire agli utenti un modo per inviare i log in caso di problemi di autenticazione.

Livelli di registrazione

MSAL offre diversi livelli di dettaglio della registrazione:

  • LogAlways: Non viene eseguito alcun filtraggio per livello per questo livello di log. Verranno registrati i messaggi di log di tutti i livelli.
  • Critical: i log che descrivono un arresto anomalo non recuperabile dell'applicazione o del sistema, oppure un guasto catastrofico che richiede attenzione immediata.
  • Error: indica che si è verificato un problema e che è stato generato un errore. Usato per il debug e l'identificazione dei problemi.
  • Warning: non si è necessariamente verificato un errore o un guasto, ma sono destinati alla diagnostica e all'identificazione dei problemi.
  • Informational: MSAL registra gli eventi destinati a scopi informativi non necessariamente destinati al debug.
  • Verbose (Impostazione predefinita): MSAL registra i dettagli completi del comportamento della libreria.

Note

Non tutti i livelli di log sono disponibili per tutti gli SDK MSAL.

Dati personali e aziendali

Per impostazione predefinita, il logger MSAL non acquisisce dati personali o aziendali estremamente sensibili. La libreria offre la possibilità di abilitare la registrazione dei dati personali e dell'organizzazione se si decide di farlo.

Le sezioni seguenti forniscono altri dettagli sulla registrazione degli errori MSAL per l'applicazione.

MSAL per la registrazione di Java

MSAL per Java consente di usare la libreria di logging che già usi nella tua app, purché sia compatibile con Simple Logging Facade for Java (SLF4J). MSAL per Java usa SLF4J come astrazione semplice per vari framework di registrazione, ad esempio java.util.logging, Logback e Log4j. SLF4J consente all'utente di collegare il framework di registrazione desiderato in fase di distribuzione e associa automaticamente a Logback in fase di distribuzione. I log MSAL verranno scritti nella console. Questo articolo illustra come abilitare la registrazione MSAL4J usando il framework di logback in un'applicazione Web Spring Boot.

  1. Per implementare la registrazione, includere il logback pacchetto in pom.xml.

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
    
  2. Passare alla resources cartella e aggiungere un file denominato logback.xmle inserire il codice seguente. Verranno aggiunti i log alla console. È possibile modificare l'appender class per scrivere i log in un file, in un database o in qualsiasi accodamento scelto.

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
        <root level="debug">
            <appender-ref ref="STDOUT" />
        </root>    
    </configuration>
    
  3. Imposta la proprietà logging.config sulla posizione del file logback.xml prima del metodo main. Passare a MsalWebSampleApplication.java e aggiungere il codice seguente alla MsalWebSampleApplication classe pubblica.

    @SpringBootApplication
    public class MsalWebSampleApplication {
    
        static { System.setProperty("logging.config", "C:\Users\<your path>\src\main\resources\logback.xml"); }
        public static void main(String[] arrgs) {
            // Console.log("main");
            // System.console().printf("Hello");
            // System.out.printf("Hello %s!%n", "World");
            System.out.printf("%s%n", "Hello World");
            SpringApplication.run(MsalWebSampleApplication.class, args);
        }
    }
    

Nel tuo tenant avrai bisogno di registrazioni di app separate per l'app Web e l'API Web. Per la registrazione dell'app e l'esposizione dell'ambito dell'API Web, seguire la procedura descritta nello scenario Un'app Web che autentica gli utenti e chiama le API Web.

Per istruzioni su come eseguire il binding ad altri framework di registrazione, vedere la documentazione di SLF4J.

Informazioni personali e dell'organizzazione

Per impostazione predefinita, la registrazione MSAL non acquisisce o registra dati personali o aziendali. Nell'esempio seguente la registrazione dei dati personali o dell'organizzazione è disattivata per impostazione predefinita:

PublicClientApplication app2 = PublicClientApplication.builder(PUBLIC_CLIENT_ID)
        .authority(AUTHORITY)
        .build();

Attivare la registrazione dei dati personali e dell'organizzazione impostando logPii() sul generatore di applicazioni client. Se si attiva la registrazione dei dati personali o dell'organizzazione, l'app deve assumersi la responsabilità di gestire in modo sicuro i dati altamente sensibili e rispettare i requisiti normativi.

Nell'esempio seguente la registrazione dei dati personali o dell'organizzazione è abilitata:

PublicClientApplication app2 = PublicClientApplication.builder(PUBLIC_CLIENT_ID)
        .authority(AUTHORITY)
        .logPii(true)
        .build();

Passaggi successivi

Per altri esempi di codice, vedere Microsoft Identity Platform esempi di codice.