Hello Jason Drinen
Looking at your error message, I can see the issue! The problem is in how you're constructing the canonicalizedResource
and potentially the datetime formatting.
To investigate further could you please confirm me the below details.
- What SDK or tool are you using to generate the SAS token and make the REST call? Have you confirmed that other APIs can work with this SAS token?
- Can you include the exact request headers and URL you’re using when making the API call?
However, in the meantime you can try the below steps:
Based on the error message and your attempts, I can see that the problem is with the canonicalizedResource format and potentially datetime formatting. Looking at your error's AuthenticationErrorDetail: String to sign used was r 2025-07-28T23:57:25.0000000Z /blob/<storageaccountname>/deploy/3842bd18-caf9-4b84-98cc-a23c00785807 https 2023-08-03 b
For the listServiceSas
REST API call, use this exact format:
{
"canonicalizedResource": "/blob/{StorageAccountName}/{ContainerName}",
"signedResource": "c",
"signedPermission": "r",
"signedProtocol": "https",
"signedExpiry": "2025-07-28T23:57:25Z",
"signedVersion": "2023-08-03"
}
Corrections Needed on the above error:
- Correct:
"/blob/{StorageAccountName}/{ContainerName}"
- Wrong:
"/blob/{StorageAccountName}/{ContainerName}/{BlobName}"
- For blob-level access, use
signedResource: "c"
(container) not"b"
(blob)
Remove signedResourceTypes
, signedServices
, signedStart
unless specifically needed.
{
"canonicalizedResource": "/blob/mystorageaccount/deploy",
"signedResource": "c",
"signedPermission": "r",
"signedProtocol": "https",
"signedExpiry": "2025-07-29T00:00:00Z",
"signedVersion": "2023-08-03"
}
Let me know if you have any question or concerns.