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

Azure Key Vault持续抛出TokenExpired错误(S2S12086)求助

解决Azure Key Vault令牌过期(S2S12086)导致的未授权错误
  • 升级依赖包
    你当前使用的@azure/identity@2.0.4和@azure/keyvault-secrets@4.3.0版本较旧,存在令牌自动刷新的已知问题。建议直接升级到最新稳定版:

    • @azure/identity至少升级到v3.x及以上版本
    • @azure/keyvault-secrets同步升级到匹配的兼容版本(如v4.7.x及以上)
      执行升级命令:
    npm update @azure/identity @azure/keyvault-secrets
    
  • 禁用自定义令牌缓存逻辑
    检查代码里有没有手动缓存令牌的自定义代码,官方SDK会自动处理令牌的获取、缓存和过期刷新,手动干预很容易导致过期令牌被重复使用。正确的客户端初始化示例:

    const { DefaultAzureCredential } = require("@azure/identity");
    const { SecretClient } = require("@azure/keyvault-secrets");
    
    // 初始化凭据和密钥客户端,无需手动处理令牌
    const credential = new DefaultAzureCredential();
    const secretClient = new SecretClient("https://your-keyvault-name.vault.azure.net/", credential);
    
  • 验证托管标识权限
    确认Web应用的托管标识(系统分配或用户分配)在Key Vault的访问策略中拥有get、list等必要权限,且权限没有被意外撤销或设置了过短的有效期。

  • 调整凭据配置
    如果升级后仍有问题,可以在初始化DefaultAzureCredential时开启令牌缓存持久化,确保令牌能正确刷新:

    const credential = new DefaultAzureCredential({
      tokenCachePersistenceOptions: {
        enabled: true
      }
    });
    
  • 排查环境配置
    检查Web应用的应用设置里,AZURE_TENANT_ID、AZURE_CLIENT_ID等环境变量是否配置正确,这些变量错误会导致凭据获取失败。同时查看应用服务的日志(如Kudu或Application Insights),获取令牌获取过程的详细错误信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:16:17