快速入门:获取访问令牌并从 Electron 桌面应用调用 Microsoft Graph API
欢迎使用! 这可能不是你期望看到的页面。 在修复时,此链接应会将你转至正确的文章:
对于因此而造成的不便,我们深表歉意。感谢你的耐心等待,我们正在努力解决此问题。
在本快速入门中将下载并运行一个代码示例,该示例演示 Electron 桌面应用程序如何让用户登录并获取访问令牌来调用 Microsoft Graph API。
本快速入门通过使用 PKCE 的身份验证代码流使用适用于 Node.js 的 Microsoft 身份验证库 (MSAL Node)。
先决条件
- Node.js
- Visual Studio Code 或其他代码编辑器
步骤 1:在 Azure 门户中配置应用程序
要使此快速入门的代码示例正常运行,需要将答复 URL 添加为 msal://redirect。
应用程序已使用这些属性进行配置。
步骤 2:下载 Electron 示例项目
注意
Enter_the_Supported_Account_Info_Here
步骤 4:运行应用程序
需要安装一次此示例的依赖项:
npm install
然后,通过命令提示符或控制台运行应用程序:
npm start
应该会看到应用程序的 UI,其中包含一个“登录”按钮。
关于代码
下面讨论了示例应用程序的一些重要方面。
MSAL Node
MSAL Node 是一个用于登录用户和请求令牌的库,此类令牌用于访问受 Microsoft 标识平台保护的 API。 若要详细了解如何搭配使用 MSAL Node 和桌面应用,请参阅本文。
可通过运行以下 npm 命令安装 MSAL Node。
npm install @azure/msal-node --save
MSAL 初始化
可通过添加以下代码为 MSAL Node 添加引用:
const { PublicClientApplication } = require('@azure/msal-node');
然后,使用以下代码对 MSAL 进行初始化:
const MSAL_CONFIG = {
auth: {
clientId: "Enter_the_Application_Id_Here",
authority: "https://login.partner.microsoftonline.cn/Enter_the_Tenant_Id_Here",
},
};
const pca = new PublicClientApplication(MSAL_CONFIG);
其中: 说明 clientId
是在 Azure 门户中注册的应用程序的应用程序(客户端) ID。 可以在 Azure 门户的应用的“概览”页中找到此值。 authority
用户要进行身份验证的 STS 终结点。 对于公有云,通常为 https://login.partner.microsoftonline.cn/{tenant}
,其中 {tenant} 是租户名称或租户 ID。
请求令牌
可以使用 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 Node 进行 Electron 桌面应用开发,请参阅教程: