I got here for the same AuthenticationFailed error. For the table service, this error does not provide any details. Only with a trial version and an error and viewing code fragments from another network and making differences with what I have is a way to debug this.
For the blob service, I saw the errors that I mentioned - the server computed StringToSign (with value) and stringToSign from the signature do not match. This helped me fix the code that computes the authentication header.
more detailed information along with the error code in the rest api will always help the developer.
Returning to this problem, the problem was that instead of the Date header, the x-ms-date header was required. Thus, the error code was inappropriate.
For winjs windows store application. The working code looked something like this:
var url = 'https://<storageaccount>.table.core.windows.net/<table name>()'; var date = new Date().toGMTString().replace('UTC', 'GMT'); var xhrOptions = { type: 'GET', url: url, headers: { // Date: date, // does not work and raises AuthenticationFailed error 'x-ms-date' : date, // works 'Content-Type': 'application/atom+xml', 'x-ms-version': '2009-09-19', DataServiceVersion: '1.0;NetFx', MaxDataServiceVersion: '1.0;NetFx', }, }; xhrOptions.headers.Authorization = computeAuthorizationHeader(xhrOptions);
source share