首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Azure REST API 401 Unauthorized 錯誤排查指南

     編輯:程式設計綜合問答

錯誤含義

401 Unauthorized 表示請求缺少有效的驗證憑證。Azure 服務管理 API 要求使用管理憑證進行驗證。

常見原因與解決步驟

1. 憑證未上傳至 Azure 入口網站

  • 建立管理憑證(.cer 與 .pfx)
  • 在 Azure 經典入口網站「設定」→「管理憑證」上傳 .cer 檔案

2. 程式碼中正確載入並附加憑證

// 將 .pfx 轉為 Base64 字串儲存於設定檔
String certBase64 = "MII..."; 
byte[] certBytes = Base64.getDecoder().decode(certBase64);
X509Certificate2 cert = new X509Certificate2(certBytes, "password", 
    KeyStorageFlags.MachineKeySet | KeyStorageFlags.PersistKeySet | KeyStorageFlags.Exportable);

// 建立請求並附加憑證
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ClientCertificates.Add(cert);
request.Headers.Add("x-ms-version", "2014-10-01"); // 必要標頭

3. 檢查請求參數完整性

  • URL 格式:https://management.core.windows.net/{subscription-id}/services/hostedservices/{cloud-service}/deploymentslots/{slot}/roles/{role}
  • 必要標頭:x-ms-version, Content-Type: application/xml
  • 請求體 XML 結構符合 API 文件

4. 使用 Fiddler/Postman 抓包對比

  • 抓取成功請求(如 Azure PowerShell Cmdlet)的完整 HTTP 報文
  • 對比標頭、憑證、Body 差異

快速驗證清單

檢查項目正確示例
訂閱 ID與入口網站一致
憑證指紋上傳的 .cer 指紋
API 版本x-ms-version: 2014-10-01
請求方法POST/PUT/DELETE 視操作而定

現代替代方案

建議改用 Azure Resource Manager (ARM) REST API + Azure AD OAuth 2.0 驗證,管理憑證模式已棄用。使用 Authorization: Bearer {access_token} 更安全、易管理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved