快速入門:取得存取令牌,並從電子桌面應用程式呼叫 Microsoft Graph API

歡迎! 這可能不是您預期的頁面。 當我們處理修正時,此鏈接應該會帶您前往正確的文章:

快速入門:從Node.js傳統型應用程式登入使用者並呼叫 Microsoft Graph

我們為不便道歉,並感謝您的耐心,同時我們努力解決這個問題。

在本快速入門中,您會下載並執行程式碼範例,示範電子桌面應用程式如何登入使用者,並取得存取令牌以呼叫 Microsoft Graph API。

本快速入門使用 Microsoft Authentication Library for Node.js (MSAL Node) 搭配 PKCE授權碼流程。

必要條件

步驟 1:在 Azure 入口網站 中設定應用程式

若要讓本快速入門的程式代碼範例能夠運作,您必須將回復 URL 新增為 msal://redirect

Already configured 您的應用程式會使用這些屬性進行設定。

步驟 2:下載電子範例專案

注意

Enter_the_Supported_Account_Info_Here

步驟 4:執行應用程式

您必須安裝此範例的相依性一次:

npm install

然後,透過命令提示字元或主控台執行應用程式:

npm start

您應該會看到具有 [登入] 按鈕的應用程式 UI

關於程式碼

以下將討論範例應用程式的一些重要層面。

MSAL 節點

MSAL Node 是用來登入使用者和要求令牌的連結庫,用來存取受 Microsoft 身分識別平台 保護的 API。 如需如何搭配傳統型應用程式使用 MSAL 節點的詳細資訊,請參閱 這篇文章

您可以執行下列 npm 命令來安裝 MSAL 節點。

npm install @azure/msal-node --save

MSAL 初始化

您可以新增下列程式代碼來新增 MSAL 節點的參考:

const { PublicClientApplication } = require('@azure/msal-node');

然後,使用下列程式代碼初始化 MSAL:

const MSAL_CONFIG = {
    auth: {
        clientId: "Enter_the_Application_Id_Here",
        authority: "https://login.microsoftonline.com/Enter_the_Tenant_Id_Here",
    },
};

const pca = new PublicClientApplication(MSAL_CONFIG);
其中: 描述
clientId 這是應用程式在 Azure 入口網站 中註冊的應用程式標識碼。 您可以在應用程式[概觀] 頁面的 [Azure 入口網站 中找到此值。
authority 用戶要驗證的 STS 端點。 通常 https://login.microsoftonline.com/{tenant} 適用於公用雲端,其中 {tenant} 是您租用戶的名稱或租用戶標識符。

要求令牌

您可以使用 MSAL Node 的 acquireTokenInteractive 公用 API,透過外部使用者代理程式取得令牌,例如預設系統瀏覽器。

const { shell } = require('electron');

try {
   const openBrowser = async (url) => {
       await shell.openExternal(url);
   };

   const authResponse = await pca.acquireTokenInteractive({
       scopes: ["User.Read"],
       openBrowser,
       successTemplate: '<h1>Successfully signed in!</h1> <p>You can close this window now.</p>',
       failureTemplate: '<h1>Oops! Something went wrong</h1> <p>Check the console for more information.</p>',
   });

   return authResponse;
} catch (error) {
   throw error;
}

下一步

若要深入瞭解使用 MSAL 節點進行電子桌面應用程式開發,請參閱教學課程: