MSAL ノードの構成

MSAL ライブラリには、認証フローの動作をカスタマイズするために使用できる一連の構成オプションがあります。 これらのオプションは、 PublicClientApplication オブジェクトのコンストラクターで、または 要求 API の一部として設定できます。 ここでは、 PublicClientApplication コンストラクターに渡すことができる構成オブジェクトについて説明します。

Prerequisites

使用方法

構成オブジェクトは、 PublicClientApplication コンストラクターに渡すことができます。 必要な構成パラメーターは、アプリケーションの client_id のみです。 それ以外はすべて省略可能ですが、認証フロー、テナント、アプリケーション モデルによっては必要になる場合があります。

サポートされているすべてのパラメーターを持つ Configuration オブジェクトを次に示します。


// Call back APIs which automatically write and read into a .json file - example implementation
const beforeCacheAccess = async (cacheContext) => {
    cacheContext.tokenCache.deserialize(await fs.readFile(cachePath, "utf-8"));
};

const afterCacheAccess = async (cacheContext) => {
    if(cacheContext.cacheHasChanged){
        await fs.writeFile(cachePath, cacheContext.tokenCache.serialize());
    }
};

// Cache Plugin
const cachePlugin = {
    beforeCacheAccess,
    afterCacheAccess
};;

const msalConfig = {
    auth: {
        clientId: "enter_client_id_here",
        authority: "https://login.microsoftonline.com/common",
        knownAuthorities: [],
        cloudDiscoveryMetadata: "",
        azureCloudOptions: {
            azureCloudInstance: "enter_AzureCloudInstance_here" // AzureCloudInstance enum is exported as a "type",
            tenant: "enter_tenant_info" // defaults to "common"
        }
    },
    cache: {
        cachePlugin // your implementation of cache plugin
    },
    system: {
        loggerOptions: {
            loggerCallback(loglevel, message, containsPii) {
                console.log(message);
            },
            piiLoggingEnabled: false,
            logLevel: msal.LogLevel.Verbose,
        },
    }
}

const msalInstance = new PublicClientApplication(msalConfig);

オプション

認証構成オプション

オプション 説明 Format デフォルト値
clientId アプリケーションのアプリ ID。 アプリの登録のMicrosoft Entra 管理センターアプリの登録で確認できます。 UUID/GUID ありません。 MSAL でアクションを実行するには、このパラメーターが必要です。
authority 認証と承認に使用するテナントの URI。 通常、次の形式をとります。 https://{uri}/{tenantid} テナントを含む URI 形式の文字列 - https://{uri}/{tenantid} https://login.microsoftonline.com/common
knownAuthorities 有効であることがわかっている URI の配列。 B2C シナリオで使用されます。 URI 形式の文字列の配列 空の配列 []
cloudDiscoveryMetadata クラウド検出応答を含む文字列。 Microsoft Entraシナリオで使用されます。 詳細については、「 パフォーマンス」 を参照してください。 文字列 空の文字列 ""
authorityMetadata .well-known/openid-configuration エンドポイント応答を含む文字列。 詳細については、「 パフォーマンス」 を参照してください。 文字列 空の文字列 ""
clientCapabilities xms_cc要求の一部としてすべてのネットワーク要求に追加する機能の配列 文字列の配列 []
azureCloudOptions 開発者が既定で特定のクラウド機関に対して定義されている Azure クラウド オプションのセット。サポートされている特定のクラウドについては、AzureCloudInstance を参照してください AzureCloudOptions AzureCloudInstance.None

キャッシュ構成オプション

オプション 説明 Format デフォルト値
cachePlugin キャッシュ永続化の読み取りと書き込みのコールバックを含むキャッシュ プラグイン (キャッシュも参照) ICachePlugin null 値

Broker の構成オプション

オプション 説明 Format デフォルト値
nativeBrokerPlugin ネイティブ トークン ブローカーを介してトークンを取得するためのブローカー プラグイン (「 ブローカー」も参照) INativeBrokerPlugin null 値

システム構成オプション

オプション 説明 Format デフォルト値
loggerOptions ロガーの構成オブジェクト。 以下を参照 してください 以下を参照 してください
NetworkClient カスタム HTTP 実装 INetworkModule HttpClient.ts
protocolMode 使用するプロトコル モードを表す列挙型。 "AAD"場合は、Microsoft Entra v2 エンドポイントで機能します。"OIDC"場合は、OIDC 準拠のエンドポイントで機能します。 文字列 "AAD"
disableInternalRetries true の場合、MSAL は失敗したネットワーク要求を再試行しません boolean false

Note

MSAL Node v5 では、 proxyUrl パラメーターと customAgentOptions パラメーターが削除されました。 アプリケーションでプロキシのサポートが必要な場合は、 INetworkModule を使用してカスタム HTTP クライアントを実装します。 例については、 カスタム INetworkModule サンプル を参照してください。 protocolMode パラメーターも認証構成からシステム構成に移動されました。

Logger 構成オプション

オプション 説明 Format デフォルト値
loggerCallback MSAL ステートメントのログ記録を処理するコールバック関数。 関数- loggerCallback: (level: LogLevel, message: string, containsPii: boolean): void 上記を参照してください。
piiLoggingEnabled true の場合、個人を特定できる情報 (PII) がログに含まれます。 boolean false

テレメトリ構成オプション

オプション 説明 Format デフォルト値
application MSAL.js を使用するアプリケーションのテレメトリ オプション 以下を参照 してください 以下を参照 してください

アプリケーション テレメトリ

オプション 説明 Format デフォルト値
appName アプリケーションの一意の文字列名 文字列 空の文字列 ""
appVersion MSAL を使用したアプリケーションのバージョン 文字列 空の文字列 ""

次のステップ

トークンを取得するための msal-node によって提供されるパブリック API の理解に進 みます。