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

Mac启动.NET后端服务遇Azure.Identity.CredentialUnavailableException异常

解决Mac上.NET服务访问Azure Key Vault时的Azure.Identity.CredentialUnavailableException异常

问题场景

在Mac上启动依赖Azure Key Vault的.NET后端服务时,持续抛出Azure.Identity.CredentialUnavailableException,已完成以下操作仍未解决:

  • 项目Azure账号已添加并获得所有者权限
  • 安装Azure CLI并执行az login
  • Key Vault访问控制添加数据读取权限
  • 账号加入访问策略,权限与前任开发者一致
  • 已在VS Code/Visual Studio for Mac登录Azure账号

异常关键提示

Exception has occurred: CLR/Azure.Identity.CredentialUnavailableException
An unhandled exception of type 'Azure.Identity.CredentialUnavailableException' occurred in Microsoft.Extensions.Configuration.AzureAppConfiguration.dll: 'DefaultAzureCredential failed to retrieve a token from the included credentials.
- EnvironmentCredential authentication unavailable. Environment variables are not fully configured.
- ManagedIdentityCredential authentication unavailable. Multiple attempts failed to obtain a token from the managed identity endpoint.
- Operating system Darwin 21.6.0 isn't supported.
- VisualStudioCodeCredential authentication unavailable. Token acquisition failed. Ensure that you have authenticated in VSCode Azure Account.
- Please run 'az login' to set up account
- Az.Account module >= 2.2.0 is not installed.'

解决步骤

  1. 升级Azure CLI及Az.Account模块
    异常明确提示Az.Account模块版本不足,执行以下命令更新:

    • 更新Azure CLI:brew update && brew upgrade azure-cli
    • 升级Az.Account扩展:az extension add --upgrade --name account
    • 重新登录Azure账号:az login,确认登录的是项目对应的账号
  2. 验证VS Code Azure Account扩展状态

    • 打开VS Code,点击左下角的Azure账户图标,确认当前激活的账号是拥有Key Vault权限的项目账号
    • 若存在多个登录账号,切换到正确账号后重启VS Code,确保会话生效
    • 检查Azure Account扩展是否为最新版本,若不是则更新
  3. 确认Key Vault访问策略有效性

    • 登录Azure Portal,进入目标Key Vault的「访问策略」页面
    • 找到你的账号对应的权限条目,确认已勾选机密读取、密钥读取、证书读取(根据项目实际需求调整),且条目处于启用状态
    • 若权限配置无误,可尝试删除并重新添加访问策略,避免配置未同步
  4. 排除环境变量干扰

    • 检查系统环境变量,确保未设置AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_CLIENT_SECRET等身份验证相关变量,这些变量会触发EnvironmentCredential尝试认证,但配置不全时会导致报错
  5. 调试DefaultAzureCredential(可选)
    若以上步骤无效,可添加日志定位具体凭证源问题:

    using Azure.Identity;
    using Microsoft.Extensions.Logging;
    
    var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole());
    var credential = new DefaultAzureCredential(new DefaultAzureCredentialOptions
    {
        Diagnostics =
        {
            IsLoggingContentEnabled = true,
        },
        LoggerFactory = loggerFactory
    });
    

    启动服务后查看控制台日志,明确哪个凭证源认证失败,再针对性排查

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:30:59