快速入门:从 Node.js 桌面应用中让用户登录并调用 Microsoft Graph
在本快速入门中将下载并运行一个代码示例,该示例演示 Electron 桌面应用程序如何让用户登录并获取访问令牌来调用 Microsoft Graph API。
本快速入门通过使用 PKCE 的身份验证代码流使用适用于 Node.js 的 Microsoft 身份验证库 (MSAL Node)。
先决条件
- Node.js
- Visual Studio Code 或其他代码编辑器
注册并下载示例应用程序
请按照以下步骤开始使用。
步骤 1:注册应用程序
提示
本文中的步骤可能因开始使用的门户而略有不同。
若要手动注册应用程序并将应用的注册信息添加到解决方案,请执行以下步骤:
- 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
- 如果你有权访问多个租户,请使用顶部菜单中的“设置”图标 ,通过“目录 + 订阅”菜单切换到你希望在其中注册应用程序的租户。
- 浏览至“标识”>“应用程序”>“应用注册”,选择“新建注册”。
- 输入应用程序的名称(例如
msal-node-desktop
)。 应用的用户可能会看到此名称,你稍后可对其进行更改。 - 选择“注册”以创建应用程序。
- 在“管理”下,选择“身份验证”。
- 选择“添加平台”>“移动和桌面应用程序” 。
- 在“重定向 URI”部分中,输入
http://localhost
。 - 选择“配置” 。
步骤 2:下载 Electron 示例项目
步骤 3:配置 Electron 示例项目
*提取项目,打开 ms-identity-JavaScript-nodejs-desktop-main 文件夹,然后打开 .authConfig.js 文件。 替换值,如下所示:
变量 | 说明 | 示例 |
---|---|---|
Enter_the_Cloud_Instance_Id_Here |
在其中注册应用程序的 Azure 云实例 | https://login.microsoftonline.com/ (包括尾随正斜杠) |
Enter_the_Tenant_Id_Here |
租户 ID 或主域 | contoso.microsoft.com 或 aaaabbbb-0000-cccc-1111-dddd2222eeee |
Enter_the_Application_Id_Here |
你已注册的应用程序的客户端 ID | 00001111-aaaa-2222-bbbb-3333cccc4444 |
Enter_the_Redirect_Uri_Here |
已注册的应用程序的重定向 URI | msal00001111-aaaa-2222-bbbb-3333cccc4444://auth |
Enter_the_Graph_Endpoint_Here |
你的应用将调用的 Microsoft Graph API 云实例 | https://graph.microsoft.com/ (包括尾随正斜杠) |
你的文件应与以下内容类似:
const AAD_ENDPOINT_HOST = "https://login.microsoftonline.com/"; // include the trailing slash
const msalConfig = {
auth: {
clientId: "00001111-aaaa-2222-bbbb-3333cccc4444",
authority: `${AAD_ENDPOINT_HOST}/aaaabbbb-0000-cccc-1111-dddd2222eeee`,
},
system: {
loggerOptions: {
loggerCallback(loglevel, message, containsPii) {
console.log(message);
},
piiLoggingEnabled: false,
logLevel: LogLevel.Verbose,
}
}
}
const GRAPH_ENDPOINT_HOST = "https://graph.microsoft.com/"; // include the trailing slash
const protectedResources = {
graphMe: {
endpoint: `${GRAPH_ENDPOINT_HOST}v1.0/me`,
scopes: ["User.Read"],
}
};
module.exports = {
msalConfig: msalConfig,
protectedResources: protectedResources,
};
步骤 4:运行应用程序
需要安装一次此示例的依赖项:
cd ms-identity-javascript-nodejs-desktop-main npm install
然后,通过命令提示符或控制台运行应用程序:
npm start
选择“登录”以启动登录过程。
首次登录时,系统会提示你允许应用程序将你登录并访问你的个人资料。 成功登录后,你将被重定向回应用程序。
详细信息
示例工作原理
用户首次选择“登录”按钮时,将调用 MSAL Node 的 acquireTokenInteractive
方法。 此方法将用户重定向到使用 Microsoft 标识平台终结点进行登录,获取授权代码,然后用其交换访问令牌。
MSAL Node
MSAL Node 是一个用于登录用户和请求令牌的库,此类令牌用于访问受 Microsoft 标识平台保护的 API。 若要详细了解如何搭配使用 MSAL Node 和桌面应用,请参阅本文。
可通过运行以下 npm 命令安装 MSAL Node。
npm install @azure/msal-node --save
后续步骤
若要详细了解如何通过 MSAL Node 进行 Electron 桌面应用开发,请参阅教程: