Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
252 views
in Technique[技术] by (71.8m points)

Azure Table Storage (Table Services REST API) SharedKeyLite not working

After seeing through this link, I tried the same in my postman.

var storageAccount = "mystorage";
var accountKey = "<<primaryKey>>";

var date = new Date();
var UTCstring = date.toUTCString();

var data = UTCstring + "
" +  "/mystorage/Health"

var encodedData = unescape(encodeURIComponent(data));

var hash = CryptoJS.HmacSHA256(encodedData, CryptoJS.enc.Base64.parse(accountKey));
var signature = hash.toString(CryptoJS.enc.Base64);
var auth = "SharedKeyLite " + storageAccount + ":" + signature;

postman.setEnvironmentVariable("auth", auth);
postman.setEnvironmentVariable("date", UTCstring);

When I make the request to ATS, to the following url, enter image description here

I get the auth denied! enter image description here

Can someone please guide me what's going wrong here?!

question from:https://stackoverflow.com/questions/65875807/azure-table-storage-table-services-rest-api-sharedkeylite-not-working

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I think you need to generate a bearer token and put it to the Authorization of Postman.

If you are using C#, you can use this to get the bearer token:

AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
string accesstoken = azureServiceTokenProvider.GetAccessTokenAsync("https://storage.azure.com/").Result;
string bearertoken = "Bearer " + accesstoken;

Then Copy the bearer token:

enter image description here

After that, it should be ok.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...