401 Unauthorized 表示請求缺少有效的驗證憑證。Azure 服務管理 API 要求使用管理憑證進行驗證。
// 將 .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"); // 必要標頭
https://management.core.windows.net/{subscription-id}/services/hostedservices/{cloud-service}/deploymentslots/{slot}/roles/{role}x-ms-version, Content-Type: application/xml| 檢查項目 | 正確示例 |
|---|---|
| 訂閱 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} 更安全、易管理。