次の方法で共有


MSAL.js でのログ記録

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

ログ記録のレベル

MSAL には、いくつかのレベルのログの詳細が用意されています。

  • LogAlways: このログ レベルでは、レベル のフィルター処理は行われません。 すべてのレベルのログ メッセージがログに記録されます。
  • 重大: 回復不能なアプリケーションまたはシステムのクラッシュ、または直ちに注意が必要な致命的な障害を記述するログ。
  • エラー: 問題が発生し、エラーが生成されたことを示します。 問題のデバッグと特定に使用されます。
  • Warning: 必ずしもエラーや障害が発生したわけではありませんが、診断や問題の特定が想定されています。
  • 情報: 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
    • サポートされているログ レベルは、 ErrorWarningInfo、および Verboseです。 既定値は Infoです。
  • piiLoggingEnabled (省略可能): true に設定すると、個人データと組織データがログに記録されます。 アプリケーションが個人データをログに記録しないように、既定ではこれは false です。 個人データ ログは、コンソール、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 プラットフォームのコード サンプルを参照してください。