You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中使用客户端证书,如何通过Microsoft Graph SDK免手动获取访问令牌?

使用Microsoft Graph SDK结合客户端证书简化Node.js应用流程

步骤1:安装依赖

首先安装所需的npm包:

npm install @microsoft/microsoft-graph-client @azure/msal-node @microsoft/microsoft-graph-client/authProviders/azureTokenCredentials

步骤2:重构代码

替换你现有的手动令牌管理代码,用Graph SDK实现:

const msal = require('@azure/msal-node');
const fs = require('fs');
const { Client } = require('@microsoft/microsoft-graph-client');
const { ClientCredentialAuthenticationProvider } = require('@microsoft/microsoft-graph-client/authProviders/azureTokenCredentials');

// 复用原有的MSAL配置
const config = {
    auth: {
        clientId: 'appId',
        authority: `https://login.microsoftonline.com/tenantId`,
        clientCertificate: {
            thumbprint: 'certificateThumbprint',
            privateKey: fs.readFileSync('./certificate.pem', 'utf8'),
        },
    },
};

// 创建MSAL机密客户端
const cca = new msal.ConfidentialClientApplication(config);

// 配置Graph SDK的认证提供者
const authProvider = new ClientCredentialAuthenticationProvider(cca, {
    scopes: ['https://graph.microsoft.com/.default']
});

// 创建Graph客户端
const graphClient = Client.initWithMiddleware({
    authProvider: authProvider
});

// 调用Graph API的示例函数
async function listUsers() {
    try {
        const users = await graphClient.api('/users').get();
        console.log(users);
    } catch (error) {
        console.error('调用API出错:', error);
    }
}

// 执行函数
listUsers();

关键说明

  • 自动令牌管理:ClientCredentialAuthenticationProvider会自动完成令牌的获取、缓存和刷新,无需手动调用令牌获取方法。
  • 简化API调用:直接通过graphClient.api()构造请求,SDK会自动注入认证头,不用手动拼接Bearer令牌。
  • 统一错误处理:SDK封装了API调用的异常逻辑,便于集中处理请求错误。

内容的提问来源于stack exchange,提问作者user1383010

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 01:04:58