認証構成オプション

ここで開始する前に、 アプリ オブジェクトを初期化する方法を理解していることを確認してください。

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

config オブジェクトの使用

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

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",
    },
    system: {
        loggerOptions: {
            loggerCallback: (
                level: LogLevel,
                message: string,
                containsPii: boolean
            ): void => {
                if (containsPii) {
                    return;
                }
                switch (level) {
                    case LogLevel.Error:
                        console.error(message);
                        return;
                    case LogLevel.Info:
                        console.info(message);
                        return;
                    case LogLevel.Verbose:
                        console.debug(message);
                        return;
                    case LogLevel.Warning:
                        console.warn(message);
                        return;
                }
            },
            piiLoggingEnabled: false,
        },
        windowHashTimeout: 60000,
        iframeHashTimeout: 6000,
        loadFrameTimeout: 0,
        protocolMode: "AAD"
    },
    telemetry: {
        application: {
            appName: "My Application",
            appVersion: "1.0.0",
        },
    },
};

const msalInstance = new PublicClientApplication(msalConfig);

構成オプション

認証構成オプション

オプション 説明 Format デフォルト値
clientId アプリケーションのアプリ ID。 Azure portal アプリの登録ウィンドウで確認できます 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 エンドポイント応答を含む文字列。 文字列 空の文字列 ""
redirectUri 承認コードの応答の送信先となる URI。 ここで指定する場所には、応答を処理するために MSAL ライブラリが必要です。 絶対 URI 形式または相対 URI 形式の文字列 ログイン要求ページ (認証要求を行ったページのwindow.location.href )
postLogoutRedirectUri logout() 呼び出しが行われた後にリダイレクトされる URI。 絶対 URI 形式または相対 URI 形式の文字列。 ログアウト後のリダイレクトを無効にするには、 null を渡します。 ログイン要求ページ (認証要求を行ったページのwindow.location.href )
navigateToLoginRequestUrl true場合は、承認コードの応答を処理する前に、元の要求の場所に戻ります。 redirectUriが元の要求の場所と同じ場合は、このフラグを false に設定する必要があります。 boolean true
clientCapabilities xms_cc要求の一部としてすべてのネットワーク要求に追加する機能の配列 文字列の配列 []
azureCloudOptions 開発者が特定のクラウド機関に既定で設定するための定義済みの Azure クラウド オプションのセット。 AzureCloudOptions AzureCloudInstance.None
skipAuthorityMetadataCache 権限の初期化中にローカル メタデータ キャッシュを使用するかどうかを選択するフラグ。 メタデータ キャッシュは、権限メタデータが指定されていない場合、およびメタデータのネットワーク呼び出しが行われる前に使用されます。 boolean false
onRedirectNavigate URL MSAL が渡されたコールバックは、リダイレクト フロー内に移動します。 コールバックで false を返すると、ナビゲーションが停止します。 関数- (url: string) => boolean \| void undefined
instanceAware STS がトークンを取得する場所を指定するために追加のパラメーターを返す必要があるかどうかを示すフラグ。 boolean false
isMcp true場合は、すべてのトークン要求でresource パラメーターが必要です。 モデル コンテキスト プロトコル (MCP) フローに使用されます。 boolean false

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

オプション 説明 Format デフォルト値
cacheLocation ブラウザーでのトークン キャッシュの場所。 次のいずれかである必要がある文字列値: "sessionStorage""localStorage""memoryStorage" sessionStorage
temporaryCacheLocation (非推奨)ブラウザーでの一時キャッシュの場所。 このオプションは、特定のエッジ ケースに対してのみ変更する必要があります。 詳細については、 キャッシュを参照してください。 次のいずれかである必要がある文字列値: "sessionStorage""localStorage""memoryStorage" sessionStorage
storeAuthStateInCookie (非推奨)true の場合は、ブラウザーのキャッシュと同様に、Cookie にキャッシュ項目を格納します。 以前は、Internet Explorer互換性のために使用されていました。 boolean false
secureCookies (非推奨)true で storeAuthStateInCookie も有効になっている場合、MSAL はブラウザー Cookie に Secure フラグを追加して、HTTPS 経由でのみ送信できるようにします。 boolean false
cacheMigrationEnabled true の場合、古いバージョンの MSAL のキャッシュ エントリは、起動時に最新のキャッシュ スキーマに準拠するように更新されます。 アプリケーションが新しいバージョンの MSAL.jsに最近更新されていない場合は、これを安全にオフにすることができます。 古いキャッシュ エントリが移行されない場合、アカウントまたはトークンを取得しようとしたときにキャッシュ ミスが発生する可能性があり、影響を受けるユーザーは最新の状態に戻るために再認証が必要になる場合があります。 boolean true localStorageを使用する場合はfalseそれ以外の場合
claimsBasedCachingEnabled true場合、要求された要求文字列のハッシュを含むキーの下にアクセス トークンがキャッシュされるため、異なる要求または不足している要求で同じトークン要求が行われると、キャッシュ ミスと新しいネットワーク トークン要求が発生します。 falseに設定すると、トークンは要求なしでキャッシュされますが、要求を含むすべての要求はネットワークに移動し、以前にキャッシュされたトークンを同じスコープで上書きします。 boolean false

Note

temporaryCacheLocation オプションは、MSAL Browser の最新バージョンでは非推奨となり、今後のメジャー リリースで削除される可能性があります。 新しい実装では、このオプションに依存しないでください。

Note

MSAL Browser の最新バージョンでは、 storeAuthStateInCookie オプションと secureCookies オプションは非推奨になりました。 これらのオプションは、主にInternet Explorer互換性のために使用されていましたが、これはサポートされなくなりました。 今後のメジャー リリースで削除される可能性があります。

詳細については、 MSAL でのキャッシュ を参照してください。

システム構成オプション

オプション 説明 Format デフォルト値
loggerOptions ロガーの構成オブジェクト。 以下を参照 してください 以下を参照 してください
windowHashTimeout ポップアップ操作が解決されるまで待機するタイムアウト (ミリ秒)。 integer (ミリ秒) 60000
iframeHashTimeout iframe 操作の解決を待機するタイムアウト (ミリ秒単位)。 integer (ミリ秒) 6000
loadFrameTimeout iframe/popup 操作の解決を待機するタイムアウト (ミリ秒単位)。 指定した場合は、 windowHashTimeoutiframeHashTimeoutの既定値を設定します。 integer (ミリ秒) undefined
navigateFrameWait iframe がウィンドウに読み込まれるのを待機するまでのミリ秒単位の遅延。 integer (ミリ秒) IE または Edge: 500、その他すべてのブラウザーで次の手順を実行します。 0
asyncPopups (非推奨 — 代わりに navigatePopups を使用してください。)ポップアップを非同期的に開くかどうかを設定します。 falseに設定すると、何も発生する前に空白のポップアップが開きます。 trueに設定すると、ネットワーク要求を行うときにポップアップが開きます。 boolean false
navigatePopups ポップアップを開いて後で移動するかどうかを設定します。 trueに設定すると、空白のポップアップが開き、ログイン ドメインに移動します。 falseに設定すると、ポップアップがログイン ドメインに直接開かれます。 これは、デスクトップ アプリやプログレッシブ Web アプリなど、about:blankがサポートされていないシナリオのfalseに設定できます。 boolean true
allowRedirectInIframe 既定では、MSAL では、アプリケーションが iframe 内にあるときにリダイレクト操作を開始することはできません。 このチェックを削除するには、このフラグを true に設定します。 boolean false
cryptoOptions ブラウザーでの暗号化操作の構成オブジェクト。 暗号化構成オプションを参照してください 暗号化構成オプションを参照してください
pollIntervalMilliseconds 認証中のポップアップ URL ハッシュのポーリングの間隔 (ミリ秒単位)。 integer (ミリ秒) 30
protocolMode 使用するプロトコル モードを表す列挙型。 "AAD"場合、MSAL は OIDC 準拠の AAD v2 エンドポイントで機能します。"OIDC"場合は、他の OIDC 準拠エンドポイントで機能します。 文字列 "AAD"

Logger 構成オプション

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

暗号化構成オプション

オプション 説明 Format デフォルト値
useMsrCrypto ブラウザーで使用可能な場合に MSR Crypto を使用するかどうか (およびその他の暗号化インターフェイスは使用できません)。 boolean false
entropy MSR Crypto のシード処理に使用される暗号的に強力なランダム値 (ノードから crypto.randomBytes(48) など)。 エントロピの 48 ビットをお勧めします。 useMsrCryptoが有効な場合は必須。 Uint8Array undefined

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

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

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

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