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

Azure Arc代理获取令牌报错:Missing Basic Authorization header

问题排查与解决方案

核心原因分析

该错误明确指向请求未携带Basic身份验证头,Azure Arc的托管身份服务(himds)要求本地令牌请求必须通过Basic Auth验证,否则会返回401未授权错误。

具体解决步骤

1. 修正PowerShell脚本的认证逻辑

确保你的脚本正确添加了Basic Authorization头,以下是符合要求的代码片段:

# 构造本地系统账户的Basic Auth凭据
$cred = New-Object System.Management.Automation.PSCredential("NT AUTHORITY\SYSTEM", (ConvertTo-SecureString "" -AsPlainText -Force))
$authStr = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($cred.UserName + ":" + [System.Net.NetworkCredential]::new("", $cred.Password).Password))
$headers = @{
    "Authorization" = "Basic $authStr"
    "Metadata" = "true"
}

# 发送令牌请求
$response = Invoke-RestMethod -Uri "http://localhost:40342/metadata/identity/oauth2/token?api-version=2019-08-01&resource=https://management.azure.com/" -Method GET -Headers $headers

2. 调整Postman请求配置

在Postman中测试时需完成以下配置:

  • 切换到Authorization标签页,选择Basic Auth类型
  • 用户名填写NT AUTHORITY\SYSTEM,密码留空
  • 手动添加Metadata: true请求头
  • 确认请求头中自动生成了Authorization: Basic <Base64编码值>

3. 检查himds服务状态

  • 打开服务管理器,找到Azure Hybrid Instance Metadata Service(himds)
  • 确认服务处于运行状态,启动类型设为自动
  • 若服务未运行,手动启动并排查启动失败原因

4. 重新注册Arc服务器

若上述步骤无效,可重新注册服务器以确保配置完整性:

# 以管理员身份执行,替换占位符为实际信息
& "$env:ProgramFiles\AzureConnectedMachineAgent\azcmagent.exe" reconnect --resource-group <你的资源组名> --tenant-id <你的租户ID> --subscription-id <你的订阅ID> --location <部署区域>

5. 排查本地安全软件拦截

确认本地防火墙、杀毒软件或EDR工具未拦截localhost:40342端口的请求,尤其是未过滤HTTP请求头的情况。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:20:03