在 MSAL Node 中初始化公共客户端应用程序对象

在本文中,你将了解如何在 MSAL Node 中初始化 PublicClientApplication 对象,以及如何配置授权机构。

先决条件

在初始化应用程序之前,首先需要在Microsoft Entra 管理中心中注册它,并在应用程序与Microsoft 标识平台之间建立信任关系。

注册应用后,你将需要可在Microsoft Entra 管理中心中找到的部分或全部以下值。

价值 必选 Description
应用程序(客户端)ID 必选 用于在 Microsoft 标识平台中唯一标识您的应用程序的 GUID。
权威 Optional 标识提供者 URL( 实例)和应用程序的 登录受众 。 实例和登录受众拼接后构成 authority
目录(租户)ID Optional 如果你正在构建仅供自己组织使用的业务线应用(通常称为 单租户应用程序),请指定目录(租户)ID。
重定向 URI Optional 如果要构建 Web 应用,redirectUri 会指定标识提供者(Microsoft 标识平台)应将其颁发的安全令牌返回到何处。

初始化 PublicClientApplication 对象

若要使用 MSAL Node,需要实例化 PublicClientApplication 对象。 我们支持并强烈建议对于任何公共客户端应用程序使用 PKCE(代码交换证明密钥)。 PKCE 示例演示了使用模式。

import * as msal from "@azure/msal-node";

const clientConfig = {
    auth: {
        clientId: "your_client_id",
        authority: "your_authority",
    }
};
const pca = new msal.PublicClientApplication(clientConfig);

配置基础知识

节点的配置选项具有common个参数,并且每个身份验证流程具有specific个参数。

  • client_id 必须初始化公共客户端应用程序
  • authority https://login.microsoftonline.com/common/如果用户在配置过程中未设置它,则默认为

有关 配置 的详细信息,请参阅 MSAL 节点中的配置

配置颁发机构

默认情况下,MSAL 配置为使用 common 租户,该租户用于多租户应用程序以及允许个人帐户(非 B2C)的应用程序。

const msalConfig = {
    auth: {
        clientId: 'your_client_id',
        authority: 'https://login.microsoftonline.com/common/'
    }
};

如果你的应用受众是单租户,你必须提供包含你的租户 ID 的机构,如下所示:

const msalConfig = {
    auth: {
        clientId: 'your_client_id',
        authority: 'https://login.microsoftonline.com/{your_tenant_id}'
    }
};

如果您的应用程序使用单独的、符合 OIDC 规范的颁发机构(例如 "https://login.live.com" 或 IdentityServer),则需要在 knownAuthorities 字段中提供该颁发机构,并将 protocolMode 设置为 "OIDC"

const msalConfig = {
    auth: {
        clientId: 'your_client_id',
        authority: 'https://login.live.com',
        knownAuthorities: ["login.live.com"],
        protocolMode: "OIDC"
    }
};

后续步骤