ここで開始する前に、 アプリ オブジェクトを初期化する方法を理解していることを確認してください。
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 操作の解決を待機するタイムアウト (ミリ秒単位)。 指定した場合は、 windowHashTimeout と iframeHashTimeoutの既定値を設定します。 |
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 を使用したアプリケーションのバージョン | 文字列 | 空の文字列 "" |