Azure Arc启用Windows Server中DefaultAzureCredential无法使用求助
解决Azure Arc Windows Server 2022用户分配托管身份认证失败问题
问题核心原因
你遇到的AuthenticationFailedException通常由以下几点导致:
- 混淆了托管身份的对象ID与客户端ID,错误将对象ID设置为
AZURE_CLIENT_ID环境变量值 - 多余配置了
AZURE_TENANT_ID,Azure Arc环境下无需手动指定该变量 - DefaultAzureCredential的认证链未优先触发Arc托管身份提供者
- Windows服务运行账户权限不足或Arc代理状态异常
正确实现步骤
- 确认托管身份关联:在Azure门户找到你的Azure Arc服务器,进入「身份」→「用户分配」页面,确保目标托管身份已成功关联至该服务器。
- 修正环境变量配置:
- 删除
AZURE_TENANT_ID环境变量,Azure Arc环境会自动识别租户信息 - 将
AZURE_CLIENT_ID的值替换为托管身份的应用程序(客户端)ID(在Entra ID托管身份详情页查看,不要使用对象ID)
- 删除
- 优化代码Credential配置:显式指定托管身份客户端ID,排除不必要的认证方式,避免链路干扰:
var credentialOptions = new DefaultAzureCredentialOptions { ManagedIdentityClientId = "你的托管身份客户端ID", ExcludeVisualStudioCredential = true, ExcludeAzureCliCredential = true, ExcludeInteractiveBrowserCredential = true }; var client = new SecretClient(new Uri(vaultUrl), new DefaultAzureCredential(credentialOptions)); var secretList = client.GetPropertiesOfSecrets(); - 检查服务运行账户:确保Windows服务使用本地系统账户运行,若使用自定义账户,需保证其具备访问本地Arc托管身份端点(
http://localhost:40342/metadata/identity/oauth2/token)的权限。 - 验证Arc代理状态:在服务器执行命令
azcmagent status,检查Azure Connected Machine Agent服务是否正常运行,若异常则重启该服务。
内容的提问来源于stack exchange,提问作者user1112324
相关产品推荐
相关产品推荐

