快速入門:使用 MSAL 節點從Node.js Web 應用程式登入使用者並呼叫 Microsoft Graph API
在本快速入門中,您會下載並執行程式碼範例,示範如何使用授權碼流程來登入使用者Node.js Web 應用程式。 程式代碼範例也會示範如何取得存取令牌來呼叫 Microsoft Graph API。
請參閱 範例 的運作方式以取得圖例。
本快速入門使用 Microsoft Authentication Library for Node.js (MSAL Node) 搭配授權碼流程。
必要條件
- Azure 訂用帳戶。 免費建立 Azure 訂用帳戶。
- Node.js
- Visual Studio Code 或其他程式碼編輯器
註冊並下載快速入門應用程式
步驟 1:註冊您的應用程式
提示
本文中的步驟可能會根據您從開始的入口網站稍有不同。
- 以至少雲端應用程式 管理員 istrator 身分登入 Microsoft Entra 系統管理中心。
- 如果您有多個租使用者的存取權,請使用頂端功能表中的 [設定] 圖示,切換至您想要從 [目錄 + 訂用帳戶] 功能表註冊應用程式的租使用者。
- 流覽至 [身分>識別應用程式> 應用程式註冊],然後選取 [新增註冊]。
- 輸入應用程式的 [ 名稱 ]。 您的應用程式使用者可能會看到此名稱,而且您稍後可以加以變更。
- 在 [支援的帳戶類型] 底下,選取 [僅在此組織目錄中的帳戶]。
- 將 [重新 導向 URI 類型] 設定為 [Web ],並將 值設定為
http://localhost:3000/auth/redirect
。 - 選取註冊。
- 在應用程式 [概 觀] 頁面上,記下 應用程式 (用戶端) 識別碼 值以供稍後使用。
- 在 [管理] 底下>,選取 [憑證與秘密客戶端密碼>] [新增客戶端密碼]。 將描述保留空白和預設到期日,然後選取 [ 新增]。
- 請注意客戶端密碼的值以供稍後使用。
步驟 2:下載專案
若要使用 Node.js 以網頁伺服器執行專案, 請下載核心項目檔。
步驟 3:設定節點應用程式
擷取項目、開啟 ms-identity-node-main 資料夾,然後開啟 App 資料夾下的 .env 檔案。 取代上述值,如下所示:
變數 | 描述 | 範例 |
---|---|---|
Enter_the_Cloud_Instance_Id_Here |
註冊應用程式的 Azure 雲端實例 | https://login.microsoftonline.com/ (包括尾端正斜線) |
Enter_the_Tenant_Info_here |
租用戶標識碼或主要網域 | contoso.microsoft.com 或 aaaabbbb-0000-cccc-1111-dddd2222eeee |
Enter_the_Application_Id_Here |
您註冊之應用程式的用戶端識別碼 | 00001111-aaaa-2222-bbbb-3333cccc4444 |
Enter_the_Client_Secret_Here |
您註冊之應用程式的客戶端密碼 | A1b-C2d_E3f.H4i,J5k?L6m!N7o-P8q_R9s.T0u |
Enter_the_Graph_Endpoint_Here |
您的應用程式將呼叫的 Microsoft Graph API 雲端實例 | https://graph.microsoft.com/ (包括尾端正斜線) |
Enter_the_Express_Session_Secret_Here |
用來簽署 Express 會話 Cookie 的隨機字元字串 | A1b-C2d_E3f.H4... |
您的檔案看起來應該如下所示:
CLOUD_INSTANCE=https://login.microsoftonline.com/
TENANT_ID=aaaabbbb-0000-cccc-1111-dddd2222eeee
CLIENT_ID=00001111-aaaa-2222-bbbb-3333cccc4444
CLIENT_SECRET=A1b-C2d_E3f.H4...
REDIRECT_URI=http://localhost:3000/auth/redirect
POST_LOGOUT_REDIRECT_URI=http://localhost:3000
GRAPH_API_ENDPOINT=https://graph.microsoft.com/
EXPRESS_SESSION_SECRET=6DP6v09eLiW7f1E65B8k
步驟 4:執行專案
使用 Node.js 執行專案。
若要啟動伺服器,請從專案目錄內執行下列命令:
cd App npm install npm start
移至
http://localhost:3000/
。選取 [登入 ] 以啟動登入程式。
第一次登入時,系統會提示您提供同意,以允許應用程式登入並存取配置檔。 成功登入之後,系統會將您重新導向回應用程式首頁。
其他相關資訊
範例的運作方式
範例會在localhost埠3000上裝載網頁伺服器。 當網頁瀏覽器存取此位址時,應用程式會轉譯首頁。 用戶選取 [登入] 之後,應用程式會透過 MSAL 節點連結庫所產生的 URL,將瀏覽器重新導向至 Microsoft Entra 登入畫面。 在使用者同意之後,瀏覽器會將使用者重新導向回應用程式首頁,以及標識碼和存取令牌。
MSAL 節點
MSAL 節點連結庫會登入使用者,並要求用來存取受 Microsoft 身分識別平台 保護之 API 的令牌。 您可以使用 Node.js 封裝管理員 下載最新版本 (npm):
npm install @azure/msal-node
下一步
在下列多部分教學課程系列中建置可登入使用者的 ASP.NET Core Web 應用程式,以深入瞭解: