2016-10-08 59 views
0

我想構建一個帳戶級別共享訪問簽名,以便我的客戶端可以訪問存儲帳戶中的所有容器。我正在關注這些文檔Account SAS。它看起來很直,但我仍然收到以下錯誤消息:Azure帳戶共享訪問簽名

「簽名不匹配。使用的字符串是帳戶名\ nrl \ nb \ nsc \ n \ n2016-10-09 \ n \ n \ n2015 -04-05 \ n」。

我的參數是相同的,所以我懷疑它與我如何散列字符串來簽名有關。以下是我如何構建令牌。

var crypto = require('crypto'); 
var accountName = 'accountname'; 
var accountKey = 'tH37FTlG3TUT86caMrt2y5kOzof8nFqqA6spzg6r7HPRojE1zDiLJD/xE4oLFDh4RNqAmymvlV7fm8W4SF8cJg=='; 

var signedPermissions = "sp=rl"; 
var signedServcies = "ss=b"; 
var signedResourceType = "srt=sc"; 
var signedExpiry = "se=2016-10-09"; 
var signedVersion = "sv=2015-04-05"; 

var stringToSign = accountName + "\n" + signedPermissions + "\n" + signedServcies + "\n" + signedResourceType + "\n" + signedExpiry + "\n" + signedVersion + "\n"; 
var hmacsha256 = crypto.createHmac('sha256', accountKey).update(stringToSign).digest('base64'); 
var token = signedPermissions + "&" + signedServcies + "&" + signedResourceType + "&" + signedExpiry + "&" + signedVersion + "&sig=" + hmacsha256; 

我嘗試過使用加密-js,但無濟於事。用於容器訪問BLOB最終URL ...

https://accountname.blob.core.windows.net/containername/blobName?srt=sc&se=2016-10-09&api-version=2015-04-05&sp=rl&ss=b&sv=2015-04-05&sig=IFD2wyfRAsHGU5IFg3RbwSJW6tRE0m0%2FxgAYvJ%2FmnEk%3D

我一直在嘗試了幾天,真的希望知道我在做什麼錯。謝謝。

+0

如果這是你的實際帳戶鍵,然後我會建議立即更改引起任何人使用此鍵就能訪問您的帳戶 –

回答

0

請嘗試以下(代碼Azure Storage Node.js library無恥地採取):

var hmacsha256 = crypto.createHmac('sha256', new Buffer(accountKey, 'base64')).update(stringToSign, 'utf-8').digest('base64'); 
+0

感謝拉夫但我仍然得到同樣的錯誤。 – Benzene

+0

我注意到的另一件事是,你沒有在你的'stringToSign'中包含所有參數(例如'signedstart')。如果你不使用這個參數,請爲此包括'\ n')。 –

+0

我將其更改爲_var stringToSign = accountName +「\ n」+ signedPermissions +「\ n」+ signedServcies +「\ n」+ signedResourceType +「\ n \ n」+ signedExpiry +「\ n \ n \ n」+ signedVersion +「\ n」; _但不幸的是我仍然得到相同的錯誤。 – Benzene

1

苯,對stringToSign,價值不應有參數的名字嗎?

var signedPermissions = "rl"; var signedServcies = "b"; var signedResourceType = "sc"; var signedExpiry = "2016-10-09"; var signedVersion = "2015-04-05";

+0

Gaurav的評論也是有效的。你還應該包括像你以前嘗試過的所有參數。 –

相關問題