在 MSAL Node 中初始化公開客戶端應用程式物件

在本文中,你將學習如何在 MSAL Node 中初始化物件 PublicClientApplication ,以及如何設定權限。

先決條件

在初始化應用程式之前,首先需要在 Microsoft Entra 系統管理中心 註冊它,建立應用程式與 Microsoft 身分識別平台 之間的信任關係。

註冊應用程式後,您需要在 Microsoft Entra 系統管理中心 中找到部分或全部以下數值。

價值 必要 Description
應用程式 (用戶端) 識別碼 必要 一個能在 Microsoft 身分識別平台 中唯一識別你的應用程式的 GUID。
權威 Optional 身份提供者的網址( 實例)以及你的應用程式的 登入受眾 。 執行個體與登入對象串接後,即構成 authority
目錄(租戶)識別碼 Optional 如果您正在為僅供組織內部使用而建置企業營運應用程式(通常稱為 單一租用戶應用程式),請指定目錄(租用戶)ID。
重新導向 URI Optional 如果您正在建置 Web 應用程式,redirectUri 會指定身分識別提供者(Microsoft 身分識別平台)應將其所簽發的安全性權杖傳回到何處。

初始化 PublicClientApplication 物件

要使用 MSAL Node,你需要實例化一個 PublicClientApplication 物件。 我們支持並強烈建議在任何 PublicClientApplication 使用 PKCE(Code Exchange 證明金鑰)。 使用模式在 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/'
    }
};

如果您的應用程式受眾為單一租戶,您必須提供如下的租戶識別權限:

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"
    }
};

後續步驟