MSDNのドキュメント、記事、およびスタックのオーバーフローを見てきましたが、問題の内容がわかりません。Azureストレージ認証(JavaScript)
https://www.kaizenspark.com/blog/topic/mirthconnect
私はマースConnectを使用してAzureのキューストレージに接続しようとするために、この記事を使用してきました。
Azureの認可がように行われる:
importPackage(javax.crypto);
importPackage(javax.crypto.spec);
importPackage(org.apache.commons.codec.binary);
// Change the variables below to your actual account details
// Remember the queue name must be lower case or it will fail
var account = "devstoreaccount1";
var key = "Access key";
var path = "devstoreaccount1/myqueuename/messages";
// No changes below this line
var apiVersion = "2011-08-18";
var contentLength = String(tmp).length;
var gmtDateString = new Date().toGMTString();
var stringToSign =
"POST\n" + /*HTTP Verb*/
"\n" + /*Content-Encoding*/
"\n" + /*Content-Language*/
contentLength + "\n" + /*Content-Length*/
"\n" + /*Content-MD5*/
"text/xml; charset=UTF-8\n" + /*Content-Type*/
"\n" + /*Date*/
"\n" + /*If-Modified-Since */
"\n" + /*If-Match*/
"\n" + /*If-None-Match*/
"\n" + /*If-Unmodified-Since*/
"\n" + /*Range*/
/* CanonicalizedHeaders */
"x-ms-date:" + gmtDateString + "\n" +
"x-ms-version:" + apiVersion + "\n" +
/* CanonicalizedResource */
"/" + account + "/" + path;
var mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(Base64.decodeBase64(key), mac.getAlgorithm()));
mac.update(java.lang.String(stringToSign).getBytes("UTF-8"));
var hmac = Base64.encodeBase64String(mac.doFinal());
connectorMap.put('Authorization', 'SharedKey ' + account + ':' + hmac);
connectorMap.put('x-ms-date', gmtDateString);
connectorMap.put('x-ms-version', apiVersion);
connectorMap.put('path', path);
私は入力自分のアカウント名、キー、およびパス以外は何も変わっていないしました。 ここの文書によると:https://msdn.microsoft.com/en-us/library/azure/dd179428.aspx#、stringToSignは正しいようです。
はしかし、私はこのエラーを取得する:
ERROR MESSAGE: <?xml version="1.0" encoding="utf-8"?><Error><Code>AuthenticationFailed</Code><Message>Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. RequestId:'id' Time:2016-10-19T17:24:51.6491513Z</Message><AuthenticationErrorDetail>The MAC signature found in the HTTP request 'key' is not the same as any computed signature. Server used following string to sign: 'POST 88 text/xml; charset=UTF-8 x-ms-date:Wed, 19 Oct 2016 17:24:50 GMT x-ms-version:2011-08-18 /accountname/queuename'.</AuthenticationErrorDetail></Error>
は、私はちょうど、プライバシーのための「キー」と、アカウント名、およびキュー名に要求IDを変更したが、それは私に表示されていたとして、それ以外の場合はエラーメッセージです。どんな支援も大歓迎です!
あなたが何をしようとする動作を伝えることはできますか?キューにメッセージを追加しようとしているようですが、確認したかったようです。また、クラウドストレージアカウントではなく、ストレージエミュレータでこれを実行しようとしていることを確認してください。 –