Journalisation dans MSAL pour Java

Les applications Microsoft Authentication Library (MSAL) génèrent des messages de journal qui peuvent aider à diagnostiquer les problèmes. Une application peut configurer la journalisation avec quelques lignes de code et avoir un contrôle personnalisé sur le niveau de détail et si les données personnelles et organisationnelles sont enregistrées ou non. Nous vous recommandons de créer une implémentation de journalisation MSAL et de fournir aux utilisateurs un moyen d’envoyer des journaux lorsqu’ils rencontrent des problèmes d’authentification.

Niveaux de journalisation

MSAL fournit plusieurs niveaux de détail de journalisation :

  • LogAlways: Aucun filtrage par niveau n’est effectué pour ce niveau de journalisation. Les messages de journalisation de tous les niveaux sont enregistrés.
  • Critical: Journaux qui décrivent un plantage irrécupérable de l’application ou du système, ou une défaillance catastrophique nécessitant une attention immédiate.
  • Error: indique qu’une erreur s’est produite et qu’une erreur a été générée. Utilisé pour le débogage et l’identification des problèmes.
  • Warning: Il n’y a pas nécessairement eu d’erreur ou d’échec, mais sont destinés aux diagnostics et à l’identification des problèmes.
  • Informational: MSAL journalise les événements destinés à des fins d’information qui ne sont pas nécessairement destinés au débogage.
  • Verbose (Par défaut) : MSAL enregistre les détails complets du comportement de la bibliothèque.

Note

Tous les niveaux de journalisation ne sont pas disponibles pour tous les SDK MSAL.

Données personnelles et organisationnelles

Par défaut, l’enregistreur d’événements MSAL ne capture pas de données personnelles ou organisationnelles hautement sensibles. La bibliothèque offre la possibilité d’activer la journalisation des données personnelles et organisationnelles si vous décidez de le faire.

Les sections suivantes fournissent plus de détails sur la journalisation des erreurs MSAL pour votre application.

Journalisation MSAL pour Java

MSAL pour Java vous permet d'utiliser la bibliothèque de journalisation que vous utilisez déjà avec votre application, tant qu'elle est compatible avec Simple Logging Façade for Java (SLF4J). MSAL pour Java utilise le SLF4J comme abstraction simple pour diverses infrastructures de journalisation, telles que java.util.logging, Logback et Log4j. SLF4J permet à l’utilisateur de se connecter à l’infrastructure de journalisation souhaitée au moment du déploiement et de lier automatiquement à Logback au moment du déploiement. Les journaux MSAL seront écrits dans la console. Cet article explique comment activer la journalisation MSAL4J à l’aide de l’infrastructure logback dans une application web Spring Boot.

  1. Pour implémenter la journalisation, incluez le logback package dans pom.xml.

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
    
  2. Accédez au resources dossier, puis ajoutez un fichier appelé logback.xml, puis insérez le code suivant. Cette opération ajoute les journaux à la console. Vous pouvez modifier l’appender class pour écrire des logs dans un fichier, une base de données ou tout autre appender de votre choix.

    <?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. Définissez la logging.config propriété sur l’emplacement du logback.xml fichier avant la méthode principale. Accédez à MsalWebSampleApplication.java et ajoutez le code suivant à la classe publique 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);
        }
    }
    

Dans votre locataire, vous devez prévoir des inscriptions d’applications distinctes pour l’application Web et l’API Web. Pour l’inscription de l’application et l’exposition de l’étendue de l’API web, suivez les étapes décrites dans le scénario Une application web qui authentifie les utilisateurs et appelle des API web.

Pour obtenir des instructions sur la liaison à d’autres frameworks de journalisation, consultez la documentation SLF4J.

Informations personnelles et organisation

Par défaut, la journalisation MSAL ne capture ni ne consigne aucune donnée personnelle ou organisationnelle. Dans l’exemple suivant, la journalisation des données personnelles ou organisationnelles est désactivée par défaut :

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

Activez la journalisation des données personnelles et organisationnelles en définissant logPii() sur le générateur d’application cliente. Si vous activez la journalisation des données personnelles ou organisationnelles, votre application doit prendre en charge la gestion sécurisée des données hautement sensibles et se conformer aux exigences réglementaires.

Dans l’exemple suivant, la journalisation des données personnelles ou organisationnelles est activée :

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

Étapes suivantes

Pour plus d’exemples de code, reportez-vous à Plateforme d'identités Microsoft exemples de code.