Protokolování v MSAL pro jazyk Java

Aplikace Identity a ověřování Microsoftu (MSAL) generují zprávy protokolu, které můžou pomoct s diagnostikou problémů. Aplikace může nakonfigurovat protokolování s několika řádky kódu a mít vlastní kontrolu nad úrovní podrobností a to, jestli se protokolují osobní a organizační data. Doporučujeme vytvořit implementaci protokolování MSAL a poskytnout uživatelům způsob odesílání protokolů, když mají problémy s ověřováním.

Úrovně protokolování

MSAL poskytuje několik úrovní podrobností protokolování:

  • LogAlways: Na této úrovni protokolu není provedeno žádné filtrování úrovní. Protokolové zprávy všech úrovní budou zaznamenávány.
  • Critical: Protokoly, které popisují neobnovitelné zhroucení aplikace nebo systému nebo katastrofické selhání vyžadující okamžitou pozornost.
  • Error: Označuje, že se něco nepovedlo a vygenerovala se chyba. Používá se k ladění a identifikaci problémů.
  • Warning: Nemusí se nutně jednat o chybu nebo selhání, ale jsou určené pro diagnostiku a určení problémů.
  • Informational: MSAL bude protokolovat události určené pro informační účely, které nemusí být nutně určeny pro ladění.
  • Verbose (Výchozí): MSAL zaznamenává úplné podrobnosti o chování knihovny.

Note

Pro všechny sady MSAL SDK nejsou k dispozici všechny úrovně protokolů.

Osobní a organizační data

Ve výchozím nastavení protokolovací nástroj MSAL nezachytává žádná vysoce citlivá osobní ani organizační data. Knihovna nabízí možnost povolit protokolování osobních a organizačních dat, pokud se tak rozhodnete.

Následující části obsahují další podrobnosti o protokolování chyb MSAL pro vaši aplikaci.

MSAL pro protokolování Java

Knihovna MSAL pro Java umožňuje používat knihovnu pro protokolování, kterou už používáte ve své aplikaci, pokud je kompatibilní s Simple Logging Facade for Java (SLF4J). MsAL pro Java používá SLF4J jako jednoduchou abstrakci pro různé protokolovací architektury, jako je java.util.logging, Logback a Log4j. SLF4J umožňuje uživateli při nasazení zapojit požadovaný framework pro logování a při nasazení se automaticky naváže na Logback. Protokoly MSAL se zapíšou do konzoly. Tento článek ukazuje, jak povolit protokolování MSAL4J pomocí architektury zpětného protokolování ve webové aplikaci Spring Boot.

  1. Pokud chcete implementovat protokolování, zahrňte balíček logback do pom.xmlsouboru .

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
    
  2. Přejděte do resources složky a přidejte soubor s názvem logback.xmla vložte následující kód. Tím se připojí protokoly ke konzole. Appender class můžete změnit tak, aby zapisoval logy do souboru, databáze nebo jakéhokoli appenderu podle vašeho výběru.

    <?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. logging.config Nastavte vlastnost na umístění logback.xml souboru před hlavní metodou. Přejděte do MsalWebSampleApplication.java veřejné třídy a přidejte do veřejné třídy následující kód MsalWebSampleApplication .

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

Ve vašem tenantu budete potřebovat samostatné registrace aplikací pro webovou aplikaci a webové API. Pro registraci a zveřejnění oboru webového rozhraní API postupujte podle kroků ve scénáři Webová aplikace, která ověřuje uživatele a volá webová rozhraní API.

Pokyny k vytvoření vazby k jiným rozhraním protokolování najdete v dokumentaci SLF4J.

Osobní informace a informace o organizaci

Ve výchozím nastavení protokolování MSAL nezachytává ani nezaznamenává žádná osobní ani organizační data. V následujícím příkladu je protokolování osobních nebo organizačních dat ve výchozím nastavení vypnuté:

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

Zapněte protokolování osobních a organizačních dat nastavením logPii() v tvůrci klientských aplikací. Pokud zapnete protokolování osobních nebo organizačních dat, musí vaše aplikace převzít odpovědnost za bezpečné zpracování vysoce citlivých dat a dodržování jakýchkoli zákonných požadavků.

V následujícím příkladu je povolené protokolování osobních nebo organizačních dat:

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

Další kroky

Další ukázky kódu najdete v článku Ukázky kódu pro platformu Microsoft Identity.