azure - 如何授权请求Azure REST API?

标签 azure azure-cdn

我正在创建一个程序来删除 CDN 缓存。所以我按照文档所述做了,我仍然得到这个:

{ “错误”: { “代码”:“AuthenticationFailedInvalidHeader”, "message": "身份验证失败。'授权' header 以无效格式提供。" } }

所以它基本上表明身份验证 token 本身格式错误(不是错误或过期)。即使我按照文档的建议做了。

我的请求-响应流程如下所示(我混淆了真实数据):

REQUEST

 POST /subscriptions/29bdq1a7-348b-48fe-b9e6-b90c432892ff/resourceGroups/cdn-4/providers/Microsoft.Cdn/Profiles/CDN-3-Premium/endpoints/custom-endpoint.azureedge.net/purge?api-version=2015-06-01 HTTP/1.1
Content-Length: 90
User-Agent: GuzzleHttp/6.1.1 curl/7.35.0 PHP/7.0.2-2+deb.sury.org~trusty+1
Host: management.azure.com
Authorization: SharedAccessSignature uid=56c6d48a66904d02ce030003&ex=2017-02-19T11:41:00.0000000Z&sn=9wBsmFuP1ps01rt8nVlvsiAIdJMOqNsmGaiXUlfT35RxOvWAjHHcSIQdJA8v9wGvX4bJgX5fu1QyqVG6y9iQ6Q==
Content-Type: application/json

{
    "ContentPaths": [
        "/uploads/static/ads_en.json",
        "/pic2.jpg"
    ]
}

  RESPONSE

  HTTP/1.1 401 Unauthorized
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
WWW-Authenticate: Bearer authorization_uri="https://login.windows.net/c87x6f33-af21-4461-a5b1-29647d8e9281", error="invalid_token", error_description="The authentication scheme of SharedAccessSignature is not supported."
x-ms-failure-cause: gateway
x-ms-request-id: 3514027b-e731-411c-b8es-cdf77d636284
x-ms-correlation-request-id: 3514137b-e731-411c-b8ee-cdf77d636284
x-ms-routing-request-id: WESTEUROPE:20160219T110919Z:3514037b-e731-411c-b7ee-cdf77d636184
Strict-Transport-Security: max-age=31536000; includeSubDomains
Date: Fri, 19 Feb 2016 11:09:19 GMT
Connection: close
Content-Length: 150

{"error":{"code":"AuthenticationFailedInvalidHeader","message":"Authentication failed. The 'Authorization' header is provided in an invalid format."}}\

你能建议解决这个问题的方法吗?

最佳答案

我认为部分困惑在于有两个不同的 Azure 管理 API(与 Azure API 管理无关)。

有“服务管理”API 和 Azure 资源管理器 API (ARM)。

您使用的基本 URL 用于 ARM API,它们不使用共享访问签名。 关于直接调用 ARM API 的最佳文章在这里, http://blog.davidebbo.com/2015/12/calling-arm-using-plain-rest.html

关于azure - 如何授权请求Azure REST API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35504051/

相关文章:

Azure CDN(标准 Microsoft)- 服务器的 IP 地址

Azure 自动化 : Best way to store credentials?

Azure 网站 ftp 上传某些文件失败,但其他文件则正常

python - 如何使用 Azure Python SDK 为容器创建共享访问签名

Azure CDN - 添加内容类型时出现无效字符

cdn - 在Azure CDN上托管字体-CORS支持

c# - 通过带有前缀的 yaml 从 keyvault 动态获取多个 secret

azure - 使用 Azure 的事件日志

Azure Verizon CDN - 100% 缓存 CONFIG_NOCACHE

http - 在 HTTPS Azure Web 角色上托管 WebAPI,并在 HTTPS Azure CDN 上托管 HTML Javascript?