配置 MSAL 节点

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