MSAL 库具有一组配置选项,可用于自定义身份验证流的行为。 可以在 PublicClientApplication 对象的构造函数中或作为 请求 API 的一部分设置这些选项。 下面介绍可传递到 PublicClientApplication 构造函数的配置对象。
先决条件
Usage
可以将配置对象传递到 PublicClientApplication 构造函数中。 唯一必需的配置参数是 client_id 应用程序的配置参数。 其他所有内容都是可选的,但可能需要根据身份验证流、租户和应用程序模型。
包含所有受支持参数 的配置对象如下所示 :
// 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);
选项
身份验证配置选项
| 选项 |
Description |
Format |
默认值 |
clientId |
应用程序的应用 ID。 可以在应用注册Microsoft Entra 管理中心中找到应用注册。 |
UUID/GUID |
None. 若要使 MSAL 执行任何操作,此参数是必需的。 |
authority |
要进行身份验证和授权的租户的 URI。 通常采用以下形式: https://{uri}/{tenantid} |
包含租户的 URI 格式的字符串 - https://{uri}/{tenantid} |
https://login.microsoftonline.com/common |
knownAuthorities |
已知有效 URI 的数组。 在 B2C 方案中使用。 |
URI 格式的字符串数组 |
空数组 [] |
cloudDiscoveryMetadata |
包含云发现响应的字符串。 在Microsoft Entra方案中使用。 有关详细信息,请参阅性能 |
字符串 |
空字符串 "" |
authorityMetadata |
包含 .known/openid-configuration 终结点响应的字符串。 有关详细信息,请参阅性能 |
字符串 |
空字符串 "" |
clientCapabilities |
要作为声明请求的 xms_cc 一部分添加到所有网络请求的功能数组 |
字符串数组 |
[] |
azureCloudOptions |
一组定义的 Azure 云选项,供开发人员默认为其特定的云颁发机构,有关支持的特定云,请参阅 AzureCloudInstance |
AzureCloudOptions |
AzureCloudInstance.None |
缓存配置选项
| 选项 |
Description |
Format |
默认值 |
cachePlugin |
缓存插件,通过回调读取和写入缓存持久性(另请参阅: 缓存) |
ICachePlugin |
null |
Broker 配置选项
| 选项 |
Description |
Format |
默认值 |
nativeBrokerPlugin |
用于通过本机令牌代理获取令牌的代理插件(另请参阅: 中转站) |
INativeBrokerPlugin |
null |
系统配置选项
| 选项 |
Description |
Format |
默认值 |
loggerOptions |
记录器的配置对象。 |
请参阅 下文。 |
请参阅 下文。 |
NetworkClient |
自定义 HTTP 实现 |
INetworkModule |
HttpClient.ts |
protocolMode |
表示要使用的协议模式的枚举。 如果"AAD",将在 Microsoft Entra v2 终结点上运行;如果"OIDC",它将在符合 OIDC 的终结点上运行。 |
字符串 |
"AAD" |
disableInternalRetries |
如果为 true,则 MSAL 不会重试失败的网络请求 |
布尔 |
false |
注释
在 MSAL Node v5 中 proxyUrl ,删除了参数和 customAgentOptions 参数。 如果应用程序需要代理支持,请使用 INetworkModule 实现自定义 HTTP 客户端。 有关示例,请参阅 自定义 INetworkModule 示例 。 该 protocolMode 参数也已从身份验证配置移动到系统配置。
记录器配置选项
| 选项 |
Description |
Format |
默认值 |
loggerCallback |
处理 MSAL 语句日志记录的回调函数。 |
函数 - loggerCallback: (level: LogLevel, message: string, containsPii: boolean): void |
请参阅 上面。 |
piiLoggingEnabled |
如果为 true,则日志中包含个人身份信息(PII)。 |
布尔 |
false |
遥测配置选项
| 选项 |
Description |
Format |
默认值 |
application |
使用 MSAL.js 的应用程序的遥测选项 |
请参阅 下文 |
请参阅 下文 |
应用程序遥测
| 选项 |
Description |
Format |
默认值 |
appName |
应用程序的唯一字符串名称 |
字符串 |
空字符串“” |
appVersion |
使用 MSAL 的应用程序版本 |
字符串 |
空字符串“” |
后续步骤
继续了解此处获取令牌提供msal-node的公共 API