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

msal-node使用OBO流遇endpoints_resolution_error问题求助

解决MSAL Node OBO流的endpoints_resolution_error问题

针对你遇到的端点解析错误,结合MSAL Node的使用规范,给出以下排查和修复建议:

1. 修正Authority配置的API版本

你的代码中authority未指定API版本,MSAL Node默认会使用v2.0端点,但Azure管理服务(management.core.windows.net)属于v1.0资源体系,可能存在端点兼容性问题。请明确指定v1.0版本的authority:

const pca = new msal.ConfidentialClientApplication({
  auth: {
      clientId: settings.config.azure.clientId,
      clientSecret: settings.config.azure.clientSecret,
      authority: "https://login.microsoftonline.com/<tenantid>/v1.0",
      knownAuthorities: ["https://login.microsoftonline.com/<tenantid>/v1.0"],
  }
});

同时确认<tenantid>已被正确替换为实际租户ID,未保留尖括号。

2. 修复Scope中的无效双斜杠

你的请求scope存在多余的双斜杠//,这会导致MSAL解析资源地址出错,修正为:

const request = {
    scopes: ['https://management.core.windows.net/user_impersonation'],
    oboAssertion: <token_extracted_from_auth_header>
}

3. 验证OBO断言令牌的正确性

OBO流要求传入的oboAssertion必须是客户端获取的访问令牌(而非ID令牌),且该令牌的受众(aud)必须是你的Node.js应用的clientId。如果客户端传递的是ID令牌,或者aud不匹配,会间接引发端点解析类的错误。

4. 排查服务器网络环境

尽管你能访问配置地址,但服务器可能存在代理或防火墙限制,MSAL Node默认不会自动使用系统代理。如果服务器需要通过代理访问外部网络,需在客户端配置中添加代理参数:

const pca = new msal.ConfidentialClientApplication({
  auth: {
      // ... 现有认证配置
  },
  system: {
      proxyUrl: "http://your-proxy-address:port" // 替换为实际代理地址
  }
});

5. 升级MSAL Node版本

你使用的1.12.1版本较旧,存在一些已知的端点解析bug,建议升级到最新稳定版:

npm update @azure/msal-node

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 02:24:28