azure - माइक्रोसॉफ्ट आज़ुर प्रमाणीकरण विफल और कोल्डफ्यूजन



coldfusion azure-storage-blobs (1)

मैं एक कॉल्ड फ्यूजन 2016 आवेदन को माइक्रोसॉफ्ट ऐज़ुर ब्लॉब भंडारण के लिए कनेक्ट करने पर काम कर रहा हूं और बस सही प्रमाणीकरण प्राप्त करने में सक्षम नहीं लगता।

मुझे जो त्रुटि मिल रही है, वह यहाँ है:

<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:9aed89ad-0001-00b8-6fd8-ecc48c000000 Time:2016-08-02T16:07:42.9046123Z</Message><AuthenticationErrorDetail>The Date header in the request is incorrect.</AuthenticationErrorDetail></Error>

HTTP / 1.1 403 सर्वर अनुरोध को प्रमाणित करने में विफल रहा। सुनिश्चित करें कि प्राधिकरण शीर्षलेख का मान सही रूप से हस्ताक्षर सहित बनाया गया है। सामग्री-लंबाई: 41 9 सामग्री-प्रकार: आवेदन / एक्सएमएल सर्वर: माइक्रोसॉफ्ट- HTTPAPI / 2.0 एक्स-एमएस-अनुरोध-आईडी: 9 एईडी 89 -0101-00b8-6fd8-ecc48c000000 दिनांक: मंगल, 02 अगस्त 2016 16:07:42 GMT कनेक्शन : बंद करे

कंटेनर में ब्लॉब्स को सूचीबद्ध करने के लिए मेरा कोड है:

<!--- The key is copied directly from the Azure portal interface. --->
<cfset theKey = "fxIciOymaQ2OAcc1g2M...BwQRxNPtEzmwHAyx6J6pw==" />

<cfset requestMethod = "GET" />

<cfset utcDate = dateConvert("local2UTC",now()) />
<cfset xmsDate = dateFormat(utcDate,"ddd, d mmm yyyy") & " " & timeFormat(utcDate,"HH:mm:ss") & " GMT" />

<cfset xmsVersion = "2015-12-11" />

<cfset canonicalizedHeaders = "x-ms-date:#xmsDate#\nx-ms-version:#xmsVersion#\n" />
<cfset canonicalizedResource = "/coldfusion/slao\ncomp:list\ninclude:metadata,snapshots,uncommittedblobs\nrestype:container\n" />

<cfset stringToSign = "#requestMethod#\n\n\n\n\n\n\n\n\n\n\n\n#canonicalizedHeaders##canonicalizedResource#" />

<cfset x = replace(stringToSign,"\n","#chr(13)##chr(10)#","all") />
<cfset y = hmac(x,tmp,"HmacSHA256","utf-8") />
<cfset requestSignature = toBase64(binaryDecode(y,"hex")) />

<cfhttp method="#requestMethod#" url="https://coldfusion.blob.core.windows.net/slao?restype=container&comp=list&include=snapshots&include=metadata&include=uncommittedblobs" result="requestResult">
    <cfhttpparam type="header" name="Authorization" value="SharedKey coldfusion:#requestSignature#">
    <cfhttpparam type="header" name="x-ms-date" value="#xmsDate#">
    <cfhttpparam type="header" name="x-ms-version" value="#xmsVersion#">
</cfhttp>

त्रुटि एक बुरी तारीख बताती है एक परीक्षण के रूप में, मैंने त्रुटि की प्रतिक्रिया में दिखाए तिथि और समय स्टाम्प में प्रतिलिपि की है और मेरे कार्यक्रम को दोबारा शुरू कर दिया है - वही त्रुटि। मैंने अपने दम पर अनुसंधान करने की कोशिश की है, लेकिन मैंने इस पर कोई प्रगति नहीं की है। मैंने भी बुद्धिमत्ता की कोशिश की है, लेकिन जाहिर है, मुझे एक ही त्रुटि मिल रही है।

क्या कोई देख सकता है कि समस्या क्या हो सकती है? किसी भी सुझाव की सराहना की जाएगी...

शेरोन


मैं अपना अंतिम, कामकाजी कार्यक्रम कोल्डफ्यूजन 2016 में साझा करना चाहता था:

<!---
Copied directly from portal.azure for this storage account.
The copied value is in base64 format.
--->
<cfset theKey = "fxIciOymaQ2OAcc1g2M...BwQRxNPtEzmwHAyx6J6pw==" />

<!---
Explicitly decode the base64 key into binary, so that hmac() 
does not use the supplied "encoding", ie utf-8 to decode it
(because that produces the wrong result). 
--->
<cfset binaryKey = binaryDecode(theKey, "base64")>

<cfset requestMethod = "GET" />

<cfset utcDate = dateConvert("local2UTC",now()) />
<cfset xmsDate = dateFormat(utcDate,"ddd, dd mmm yyyy") & " " & timeFormat(utcDate,"HH:mm:ss") & " GMT" />

<cfset xmsVersion = "2015-12-11" />

<cfset canonicalizedHeaders = "x-ms-date:#xmsDate#\nx-ms-version:#xmsVersion#\n" />
<cfset canonicalizedResource = "/coldfusion/slao\ncomp:list\ninclude:metadata,snapshots,uncommittedblobs\nrestype:container" />

<cfset stringToSign = "#requestMethod#\n\n\n\n\n\n\n\n\n\n\n\n#canonicalizedHeaders##canonicalizedResource#" />

<cfset x = replace(stringToSign,"\n","#chr(10)#","all") />
<cfset y = hmac(x,binaryKey,"HmacSHA256","utf-8") />
<cfset requestSignature = toBase64(binaryDecode(y,"hex")) />

<cfhttp method="#requestMethod#" url="https://coldfusion.blob.core.windows.net/slao?restype=container&comp=list&include=snapshots&include=metadata&include=uncommittedblobs" result="requestResult">
    <cfhttpparam type="header" name="Authorization" value="SharedKey coldfusion:#requestSignature#">
    <cfhttpparam type="header" name="x-ms-date" value="#xmsDate#">
    <cfhttpparam type="header" name="x-ms-version" value="#xmsVersion#">
</cfhttp>

<cfdump var="#requestResult#" expand="yes" />

बहुत धन्यवाद! शेरोन