Pengelogan di MSAL untuk Java

Aplikasi Pustaka Autentikasi Microsoft (MSAL) menghasilkan pesan log yang dapat membantu mendiagnosis masalah. Aplikasi dapat mengonfigurasi pengelogan dengan beberapa baris kode, dan memiliki kontrol kustom atas tingkat detail dan apakah data pribadi dan organisasi dicatat atau tidak. Sebaiknya Anda membuat implementasi pengelogan MSAL dan menyediakan cara bagi pengguna untuk mengirimkan log saat mereka memiliki masalah autentikasi.

Tingkat Pengelogan

MSAL menyediakan beberapa tingkat detail pengelogan:

  • LogAlways: Tidak ada pemfilteran tingkat yang dilakukan pada tingkat log ini. Pesan log dari semua tingkatan akan dicatat.
  • Critical: Log yang menjelaskan aplikasi atau crash sistem yang tidak dapat dipulihkan, atau kegagalan bencana yang membutuhkan perhatian segera.
  • Error: Menunjukkan bahwa telah terjadi kesalahan dan sebuah error dihasilkan. Digunakan untuk debugging dan mengidentifikasi masalah.
  • Warning: Belum tentu ada kesalahan atau kegagalan, tetapi ditujukan untuk diagnostik dan menentukan masalah.
  • Informational: MSAL akan mencatat kejadian untuk tujuan informasi yang tidak selalu dimaksudkan untuk penelusuran kesalahan.
  • Verbose (Default): MSAL mencatat detail lengkap perilaku pustaka.

Note

Tidak semua tingkat log tersedia untuk semua SDK MSAL.

Data pribadi dan organisasi

Secara default, pencatat MSAL tidak mengambil data pribadi atau organisasi yang sangat sensitif. Pustaka menyediakan opsi untuk mengaktifkan pengelogan data pribadi dan organisasi jika Anda memutuskan untuk melakukannya.

Bagian berikut memberikan detail selengkapnya tentang pengelogan kesalahan MSAL untuk aplikasi Anda.

MSAL untuk pengelogan Java

MSAL untuk Java memungkinkan Anda menggunakan pustaka pengelogan yang sudah Anda gunakan dengan aplikasi Anda, selama kompatibel dengan Simple Logging Facade untuk Java (SLF4J). MSAL untuk Java menggunakan SLF4J sebagai abstraksi sederhana untuk berbagai kerangka kerja pengelogan, seperti java.util.logging, Logback, dan Log4j. SLF4J memungkinkan pengguna untuk menyambungkan kerangka kerja pengelogan yang diinginkan pada waktu penyebaran dan secara otomatis mengikat ke Logback pada waktu penyebaran. Log MSAL akan ditulis ke konsol. Artikel ini memperlihatkan cara mengaktifkan pengelogan MSAL4J menggunakan kerangka kerja logback dalam aplikasi web Spring Boot.

  1. Untuk menerapkan pengelogan, sertakan logback paket dalam pom.xml.

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
    
  2. Navigasi ke resources folder, dan tambahkan file yang disebut logback.xml, dan sisipkan kode berikut. Ini akan menambahkan log ke konsol. Anda dapat mengubah appender class untuk menulis log ke file, database, atau appender apa pun yang Anda pilih.

    <?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. Atur properti logging.config ke lokasi file logback.xml sebelum metode utama. Navigasi ke MsalWebSampleApplication.java dan tambahkan kode berikut ke MsalWebSampleApplication kelas publik.

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

Dalam tenant Anda, Anda perlu membuat pendaftaran aplikasi terpisah untuk aplikasi web dan web API. Untuk pendaftaran aplikasi dan mengekspos cakupan API web, ikuti langkah-langkah dalam skenario Aplikasi web yang mengautentikasi pengguna dan memanggil API web.

Untuk petunjuk tentang cara mengikat kerangka kerja pengelogan lainnya, lihat dokumentasi SLF4J.

Informasi pribadi dan organisasi

Secara default, pengelogan MSAL tidak menangkap atau mencatat data pribadi atau organisasi apa pun. Dalam contoh berikut, pengelogan data pribadi atau organisasi nonaktif secara default:

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

Aktifkan pencatatan log data pribadi dan data organisasi dengan mengatur logPii() di pembangun aplikasi klien. Jika Anda mengaktifkan pengelogan data pribadi atau organisasi, aplikasi Anda harus bertanggung jawab untuk menangani data yang sangat sensitif dengan aman dan mematuhi persyaratan peraturan apa pun.

Dalam contoh berikut, pengelogan data pribadi atau organisasi diaktifkan:

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

Langkah berikutnya

Untuk sampel kode lainnya, lihat sampel kode platform identitas Microsoft.