Journalisation dans MSAL.js

Les applications de la Bibliothèque d’authentification Microsoft (MSAL) génèrent des messages de journal qui contribuent à diagnostiquer des problèmes. Une application peut configurer la journalisation avec quelques lignes de code et contrôler de façon personnalisée le niveau de détail, ainsi que permettre de savoir si des données personnelles et d’organisation sont consignées ou non. Nous vous conseillons de créer une implémentation de la journalisation MSAL et de donner aux utilisateurs le moyen d’envoyer les journaux lorsqu’ils rencontrent des problèmes d’authentification.

Niveaux de journalisation

MSAL fournit plusieurs niveaux de détail de journalisation :

  • LogAlways : aucun filtrage de niveau n’est effectué à ce niveau de journal. Les messages de journal de tous les niveaux seront consignés.
  • Critique : 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.
  • Erreur : indique qu’un problème est survenu et qu’une erreur a été générée. Utilisé pour le débogage et l’identification des problèmes.
  • Avertissement : Il n’y a pas nécessairement eu une erreur ou une défaillance, mais l’objectif est d’effectuer un diagnostic et de mettre en avant des problèmes éventuels.
  • Information : MSAL journalise les événements destinés à fournir des informations et pas nécessairement destinés au débogage.
  • Commentaire (par défaut) : MSAL journalise les détails complets du comportement de la bibliothèque.

Notes

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

Données personnelles et d’organisation

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

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

Configurer la journalisation dans MSAL.js

Activez la journalisation dans MSAL.js (JavaScript) en passant un objet loggerOptions lors de la configuration pour la création d’une instance PublicClientApplication. Le seul paramètre de configuration requis est l’ID client de l’application. Tout le reste est facultatif, mais il peut être requis en fonction de votre client et de votre modèle d’application.

L’objet loggerOptions a les propriétés suivantes :

  • loggerCallback : Fonction de rappel qui peut être fournie par le développeur pour gérer la journalisation des instructions MSAL de manière personnalisée. Implémentez la fonction loggerCallback de la façon dont vous souhaitez rediriger les journaux. La fonction loggerCallback a le format suivant (level: LogLevel, message: string, containsPii: boolean): void
    • Les niveaux de journalisation pris en charge sont les suivants : Error, Warning, Info et Verbose. Par défaut, il s’agit de Info.
  • piiLoggingEnabled (facultatif) : s'il est défini sur true, vous permet de journaliser des données personnelles et organisationnelles. Par défaut, il est défini sur false. Votre application n’enregistre donc pas de données personnelles. Les journaux de données personnelles ne sont jamais écrits dans les sorties par défaut telles que Console, Logcat ou NSLog.
import msal from "@azure/msal-browser"

const msalConfig = {
    auth: {
        clientId: "enter_client_id_here",
        authority: "https://login.microsoftonline.com/common",
        knownAuthorities: [],
        cloudDiscoveryMetadata: "",
        redirectUri: "enter_redirect_uri_here",
        postLogoutRedirectUri: "enter_postlogout_uri_here",
        navigateToLoginRequestUrl: true,
        clientCapabilities: ["CP1"]
    },
    cache: {
        cacheLocation: "sessionStorage",
        storeAuthStateInCookie: false,
        secureCookies: false
    },
    system: {
        loggerOptions: {
            logLevel: msal.LogLevel.Verbose,
            loggerCallback: (level, message, containsPii) => {
                if (containsPii) {
                    return;
                }
                switch (level) {
                    case msal.LogLevel.Error:
                        console.error(message);
                        return;
                    case msal.LogLevel.Info:
                        console.info(message);
                        return;
                    case msal.LogLevel.Verbose:
                        console.debug(message);
                        return;
                    case msal.LogLevel.Warning:
                        console.warn(message);
                        return;
                }
            },
            piiLoggingEnabled: false
        },
    },
};

Étapes suivantes

Pour obtenir d’autres exemples de code, consultez Exemples de code de la plateforme d’identités Microsoft.