MSAL.js でのログ記録

この記事では、さまざまな種類のエラーの概要と、一般的なサインイン エラーを処理するための推奨事項について説明します。

MSAL エラー処理の基本

Microsoft Authentication Library (MSAL) の例外は、エンド ユーザーに表示されるのではなく、アプリ開発者がトラブルシューティングを行うために使用されます。 例外メッセージはローカライズされません。

例外とエラーを処理する場合は、例外の種類自体とエラー コードを使用して例外を区別できます。 エラー コードの一覧については、認証と承認のエラー コードMicrosoft Entra参照してください。

サインイン エクスペリエンス中に、同意、条件付きアクセス (MFA、デバイス管理、場所ベースの制限)、トークンの発行と利用、およびユーザー プロパティに関するエラーが発生する場合があります。

次のセクションでは、アプリのエラー処理の詳細について説明します。

MSAL.js でログ記録を構成する

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

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

  • loggerCallback: カスタムの方法で MSAL ステートメントのログ記録を処理するために開発者が提供できるコールバック関数。 ログのリダイレクト方法に応じて、 loggerCallback 関数を実装します。 loggerCallback 関数の形式は次のとおりです。 (level: LogLevel, message: string, containsPii: boolean): void
    • サポートされているログ レベルは、 Error、 Warning、 Info、および 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 プラットフォームコード サンプルを参照してください。