Я борюсь за неделю, а теперь до точки, чтобы сгенерировать токен SAS. Но все же я не могу пройти авторизацию.
Ниже приведена ошибка, которую я получаю
<?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:854b47a8-e01e-004e-2746-fc3888000000
Time:2020-03-17T10:26:29.3224986Z</Message>
<AuthenticationErrorDetail>Signature fields not well formed.</AuthenticationErrorDetail>
</Error>
Ниже приведен мой простой метод с использованием Salesforce APEX. Я скрыл ключ учетной записи
public void generateSASToken()
{
string storageKey = 'XXXXXXXXXXXFbF9ndVdcdl==';
Datetime sasExpiry = Datetime.now();
sasExpiry.addMinutes(15);
sasExpiry = getUTCDateTime(sasExpiry);
System.debug('sasExpiry-->'+sasExpiry);
String url='https://zaindevtesting.blob.core.windows.net/zaindevblob/test.txt?sv=2019-02-02&ss=bfqt&srt=sco&sp=w&se=2020-03-18T15:56:39Z&st=2020-03-17T07:56:39Z&spr=https&sig=';
String stringToSign = 'w\n2020-03-17T07:56:39Z\n2020-03-18T15:56:39Z\n/zaindevtesting/zaindevblob\nYWJjZGVmZw==\n2019-02-02';
String signature = '';
Blob unicodeKey = EncodingUtil.base64Decode(storageKey);
Blob data = Crypto.generateMac('HMACSHA256', Blob.valueOf(stringToSign), unicodeKey);
signature = EncodingUtil.base64Encode(data);
url = url + signature;
System.debug('signature--->'+url);
System.debug('signature--->'+signature);
}
Я использую следующий документ Microsoft https://docs.microsoft.com/en-gb/rest/api/storageservices/service-sas-examples
Пожалуйста, помогите мне, я не против, если кто-то предложит альтернативное решение.
Спасибо, Зейн