2016-02-19 20 views
5

Ich erstelle ein Programm, um den CDN-Cache zu löschen. Und so habe ich als Dokumentation, sagte ich dies noch erhalten:Wie berechtige ich die Azure REST API?

{ "Fehler": { "Code": "AuthenticationFailedInvalidHeader", "message":. „Authentifizierung fehlgeschlagen Der Header 'Authorization' sind in einem zur Verfügung gestellt ungültiges Format." } }

So heißt es im Grunde, dass das Authentifizierungstoken selbst falsch formatiert ist (nicht falsch oder abgelaufen). Obwohl ich es tat, wie es die Dokumentation nahelegte.

Mein Flow Request-Response sieht wie folgt aus (I realen Daten verschleiert):

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."}}\ 

Können Sie den Weg legen nahe, es zu lösen?

+0

Nach welcher Dokumentation? Unterstützt die REST API SharedAccessSignatures? –

+0

Also studierte ich diese zwei Quellen: https://msdn.microsoft.com/en-us/library/azure/dn776326.aspx und https://msdn.microsoft.com/en-us/library/mt634451 .aspx –

+1

Der erste Link befindet sich in der Azure-API-Verwaltung (https://azure.microsoft.com/en-us/documentation/articles/api-management-key-concepts/), bei der es sich um ein anderes Produkt handelt. Es ist nicht die Azure Rest API. Siehe diesen Link für weitere Informationen: https://msdn.microsoft.com/en-us/library/azure/ee460782.aspx –

Antwort

1

Teil der Verwirrung Ich denke, dass es zwei verschiedene Azure Management APIs gibt (und nichts mit Azure API Management zu tun).

Es gibt die APIs "Service Management" und die Azure Resource Manager-APIs (ARM).

Die von Ihnen verwendete Basis-URL gilt für die ARM-APIs, und sie verwenden keine Shared Access-Signaturen. Der beste Artikel rund um den Aufruf der ARM-APIs direkt ist hier, http://blog.davidebbo.com/2015/12/calling-arm-using-plain-rest.html

Verwandte Themen