MSAL.js でのログ記録

Microsoft Authentication Library (MSAL) アプリは、問題の診断に役立つログ メッセージを生成します。 アプリは数行のコードでログ記録を構成でき、詳細レベルと、個人データと組織のデータをログ記録するかどうかを制御するカスタム コントロールを備えています。 ユーザーが認証の問題を抱えているときは、MSAL ログの実装を作成し、ユーザーがログを送信できるようにすることをお勧めします。

ログ記録のレベル

MSAL では、いくつかのレベルのログ記録の詳細が提供されます。

  • LogAlways: このログ レベルでは、レベルのフィルター処理は行われません。 すべてのレベルのログ メッセージがログされます。
  • Critical: アプリケーションまたはシステムの修復不可能なクラッシュや、早急に対処する必要がある重大な障害について説明するログ。
  • エラー:問題の発生し、エラーが生成されたことを示します。 問題をデバッグおよび特定するために使用されます。
  • 警告:必ずしもエラーや障害があったわけではありませんが、診断や問題の特定の対象となっています。
  • Informational: MSAL は、情報目的でイベントをログし、必ずしもデバッグ目的ではありません。
  • Verbose (既定値): MSAL は、ライブラリの動作の完全な詳細をログします。

注意

すべての MSAL SDK ですべてのログ レベルを使用できるわけではありません

個人と組織のデータ

既定では、MSAL ロガーによって、機密性の高い個人または組織のデータはキャプチャされません。 ライブラリには、個人と組織のデータをログ記録することにした場合に、そのログ記録を有効にするオプションが用意されています。

次のセクションでは、アプリケーションの MSAL エラー ログ記録の詳細について説明します。

MSAL.js でのログの構成

PublicClientApplication インスタンスを作成するための構成中に loggerOptions オブジェクトを渡すことによって、MSAL.js (JavaScript) でのログ記録を有効にします。 必要な構成パラメーターは、アプリケーションのクライアント ID のみです。 それ以外はすべて省略可能ですが、テナントとアプリケーション モデルによっては必要になる場合があります。

この loggerOptions オブジェクトには、次のプロパティがあります。

  • loggerCallback: 開発者が MSAL ステートメントのログ記録をカスタムの方法で処理するために提供できるコールバック関数。 ログをリダイレクトする方法に応じて loggerCallback 関数を実装します。 loggerCallback 関数の形式は次のとおりです。 (level: LogLevel, message: string, containsPii: boolean): void
    • サポートされているログ レベルは、ErrorWarningInfoVerbose です。 既定では、 Infoです。
  • piiLoggingEnabled (省略可能): true に設定した場合、個人データと組織データをログに記録できます。 既定では、これは false であるため、ご利用のアプリケーションでは個人データはログ記録されません。 個人データのログは、Console、Logcat、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
        },
    },
};

次のステップ

追加のコード サンプルについては、「Microsoft ID プラットフォームのコード サンプル」を参照してください。