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

使用DefaultAzureCredential获取令牌出现AADSTS100009错误如何解决

错误产生原因

AADSTS100009错误的核心触发逻辑是Azure AD区域缓存认证服务不支持需要返回加密令牌的认证流请求,对应你的场景具体触发条件通常为以下两种:

  • 你手动开启了DefaultAzureCredential的区域认证能力:要么在Azure Function配置中添加了AZURE_REGIONAL_AUTHORITY_NAME环境变量,要么在代码初始化凭证时显式指定了区域权威机构参数,而你请求令牌的目标服务要求Azure AD返回加密的访问令牌,区域缓存服务目前不支持这类请求
  • 你使用的Azure.Identity库版本过低:1.9.0之前的版本会在Azure Function运行环境中默认自动开启区域认证,没有兼容加密令牌场景的冲突
解决方案

以下方案任选其一即可解决问题:

  • 手动关闭区域认证
    可选择任意一种操作方式:
    1. 进入Azure Function的配置页,删除AZURE_REGIONAL_AUTHORITY_NAME环境变量
    2. 代码初始化DefaultAzureCredential时显式禁用区域认证,代码示例:
    var credential = new DefaultAzureCredential(new DefaultAzureCredentialOptions
    {
        ExcludeRegionalAuthority = true
    });
    
  • 升级Azure.Identity NuGet包
    将项目中的Azure.Identity包升级到1.9.0及以上的稳定版本,该版本之后微软调整了默认逻辑,不会在冲突场景下自动开启区域认证
  • 更换托管标识专用凭证类
    如果你确认该函数仅会在Azure托管环境运行,仅需要使用系统托管标识认证,可以直接使用ManagedIdentityCredential类替代DefaultAzureCredential,该类默认不会启用区域认证逻辑,代码示例:
    var credential = new ManagedIdentityCredential();
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:54:02