Logga in i MSAL för Java

MICROSOFT AUTHENTICATION LIBRARY-apparna (MSAL) genererar loggmeddelanden som kan hjälpa dig att diagnostisera problem. En app kan konfigurera loggning med några rader kod och ha anpassad kontroll över detaljnivån och om personliga data och organisationsdata loggas eller inte. Vi rekommenderar att du skapar en MSAL-loggningsimplementering och tillhandahåller ett sätt för användare att skicka loggar när de har autentiseringsproblem.

Loggningsnivåer

MSAL innehåller flera nivåer av loggningsinformation:

  • LogAlways: Ingen nivåfiltrering görs på den här loggnivån. Loggmeddelanden på alla nivåer loggas.
  • Critical: Loggar som beskriver ett program eller en systemkrasch som inte kan återställas, eller ett oåterkalleligt fel som kräver omedelbar uppmärksamhet.
  • Error: Anger att något har gått fel och att ett fel har genererats. Används för att felsöka och identifiera problem.
  • Warning: Det har inte nödvändigtvis varit ett fel eller misslyckande, utan de är avsedda för diagnostik och för att identifiera problem.
  • Informational: MSAL loggar händelser som är avsedda för informationsändamål som inte nödvändigtvis är avsedda för felsökning.
  • Verbose (Standard): MSAL loggar fullständig information om biblioteksbeteende.

Note

Alla loggnivåer är inte tillgängliga för alla MSAL-SDK:er.

Personliga och organisatoriska data

Som standard samlar MSAL-loggaren inte in några mycket känsliga personliga data eller organisationsdata. Biblioteket ger möjlighet att aktivera loggning av personliga data och organisationsdata om du bestämmer dig för att göra det.

Följande avsnitt innehåller mer information om MSAL-felloggning för ditt program.

MSAL för Java loggning

MED MSAL för Java kan du använda loggningsbiblioteket som du redan använder med din app, så länge det är kompatibelt med Simple Logging Facade for Java (SLF4J). MSAL för Java använder SLF4J som en enkel abstraktion för olika loggningsramverk, till exempel java.util.logging, Logback och Log4j. Med SLF4J kan användaren ansluta det önskade loggningsramverket vid distributionstillfället och automatiskt binda till Logback vid distributionstillfället. MSAL-loggar skrivs till konsolen. Den här artikeln visar hur du aktiverar MSAL4J-loggning med hjälp av logback-ramverket i ett Spring Boot-webbprogram.

  1. För att implementera loggning inkluderar du paketet logback i pom.xml.

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
    
  2. Gå till resources mappen och lägg till en fil med namnet logback.xmloch infoga följande kod. Då läggs loggarna till i konsolen. Du kan ändra tillägget class till att skriva loggar till en fil, databas eller valfri tilläggsfil.

    <?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. Ange egenskapen logging.config till sökvägen för filen logback.xml innan huvudmetoden. Navigera till MsalWebSampleApplication.java och lägg till följande kod i den MsalWebSampleApplication publika klassen.

    @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);
        }
    }
    

I din klientorganisation behöver du separata appregistreringar för webbappen och webb-API:et. För appregistrering och visning av webb-API-omfånget följer du stegen i scenariot En webbapp som autentiserar användare och anropar webb-API:er.

Anvisningar om hur du binder till andra loggningsramverk finns i SLF4J-dokumentationen.

Personlig information och organisationsinformation

Som standard samlar MSAL-loggning inte in eller loggar några personliga data eller organisationsdata. I följande exempel är loggning av personliga data eller organisationsdata inaktiverade som standard:

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

Aktivera personlig dataloggning och organisationsdataloggning genom att ställa in logPii() på klientprogramverktyget. Om du aktiverar personlig dataloggning eller organisationsdataloggning måste din app ta ansvar för att hantera mycket känsliga data på ett säkert sätt och uppfylla eventuella regelkrav.

I följande exempel är loggning av personliga data eller organisationsdata aktiverade:

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

Nästa steg

Fler kodexempel finns i Microsofts identitetsplattform kodexempel.