快速入门:使用 MSAL Node 从 Node.js web 应用程序登录用户并调用 Microsoft Graph API
在本快速入门中,你将下载并运行一个代码示例,该示例演示 Node.js Web 应用如何使用授权代码流来让用户登录。 此代码示例还演示如何获取访问令牌来调用 Microsoft Graph API。
有关说明,请参阅示例工作原理。
本快速入门通过身份验证代码流使用适用于 Node.js 的 Microsoft 身份验证库 (MSAL Node)。
先决条件
- Azure 订阅。 创建 Azure 订阅。
- Node.js
- Visual Studio Code 或其他代码编辑器
注册并下载快速入门应用程序
步骤 1:注册应用程序
提示
本文中的步骤可能因开始使用的门户而略有不同。
- 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
- 如果你有权访问多个租户,请使用顶部菜单中的“设置”图标 ,通过“目录 + 订阅”菜单切换到你希望在其中注册应用程序的租户。
- 浏览至“标识”>“应用程序”>“应用注册”,选择“新建注册”。
- 输入应用程序的名称。 应用的用户可能会看到此名称,你稍后可对其进行更改。
- 在“支持的帐户类型”下,选择“仅此组织目录中的帐户” 。
- 将“重定向 URI”类型设置为 Web 并将值设置为
http://localhost:3000/auth/redirect
。 - 选择“注册” 。
- 在应用的“概述”页上,记下“应用程序(客户端) ID”值,供稍后使用 。
- 在“管理”下,选择“证书和机密”>“客户端密码”>“新建客户端密码”。 将说明留空并保留默认过期时间,然后选择添加。
- 记下客户端密码的值供稍后使用。
步骤 2:下载项目
若要使用 Node.js 在 Web 服务器中运行项目,请下载核心项目文件。
步骤 3:配置 Node 应用
提取项目,打开 ms-identity-node-main 文件夹,然后打开 App 文件夹下的 .env 文件。 将上面的值如下所示进行替换:
变量 | 说明 | 示例 |
---|---|---|
Enter_the_Cloud_Instance_Id_Here |
在其中注册应用程序的 Azure 云实例 | https://login.partner.microsoftonline.cn/ (包括尾随正斜杠) |
Enter_the_Tenant_Info_here |
租户 ID 或主域 | contoso.microsoft.com 或 aaaabbbb-0000-cccc-1111-dddd2222eeee |
Enter_the_Application_Id_Here |
你已注册的应用程序的客户端 ID | 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://microsoftgraph.chinacloudapi.cn/ (包括尾随正斜杠) |
Enter_the_Express_Session_Secret_Here |
用于对 Express 会话 cookie 进行签名的随机字符串 | A1b-C2d_E3f.H4... |
你的文件应与以下内容类似:
CLOUD_INSTANCE=https://login.partner.microsoftonline.cn/
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://microsoftgraph.chinacloudapi.cn/
EXPRESS_SESSION_SECRET=6DP6v09eLiW7f1E65B8k
步骤 4:运行项目
使用 Node.js 运行项目。
若要启动服务器,请从项目目录中运行以下命令:
cd App npm install npm start
转到
http://localhost:3000/
。选择“登录”以启动登录过程。
首次登录时,系统会提示你允许应用程序将你登录并访问你的个人资料。 成功登录后,你将被重定向回应用程序主页。
详细信息
示例工作原理
该示例在 localhost 端口 3000 上托管 Web 服务器。 当 Web 浏览器访问此地址时,应用将呈现主页。 用户选择“登录”后,应用将通过 MSAL 节点库生成的 URL 将浏览器重定向到 Microsoft Entra 登录屏幕。 用户同意后,浏览器会将用户与 ID 和访问令牌一起重定向回应用程序主页。
MSAL Node
MSAL Node 库会让用户登录,并请求用于访问受 Microsoft 标识平台保护的 API 的令牌。 可通过 Node.js 包管理器 (npm) 下载最新版本:
npm install @azure/msal-node
后续步骤
在以下多部分教程系列中,通过构建一个让用户登录的 ASP.NET Core Web 应用来了解详细信息: