繁体   English   中英

无法在 Azure web 应用程序上获得正确的 SAS 令牌 - 身份验证失败。 Python

[英]Cant get correct SAS token on Azure web app - Authentication Failed. Python

我正在调用generate_sas_token API 生成一个 SAS 令牌,我将 append 添加到 url 的末尾以便能够访问它。 我之前让它工作,但后来我一直收到这个错误:

<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:ae350ec9-c01e-0010-06ca-257999000000
Time:2022-02-19T19:55:49.7901043Z
</Message>

<AuthenticationErrorDetail>
Signature did not match. String to sign used was rt

2022-02-19T21:55:49Z/blob/storage/files/someimage.jpg  

2020-10-02
b

添加了我的电话

def generate_sas_token(file_name, img_url):

    pattern = r'\bhttps:\/\/lenstorage.blob.core.windows.net\/files\/\b'
    file_name = re.sub(pattern,'', img_url)

    AZURE_ACC_NAME = settings.AZURE_ACCOUNT_NAME
    AZURE_PRIMARY_KEY = settings.AZURE_PRIMARY_KEY
    AZURE_CONTAINER = settings.AZURE_CONTAINER

    sas = generate_blob_sas(account_name=AZURE_ACC_NAME,
                            account_key=AZURE_PRIMARY_KEY,
                            container_name=AZURE_CONTAINER,
                            blob_name=file_name,
                            permission=BlobSasPermissions(read=True),
                            expiry=datetime.utcnow() + timedelta(hours=2))

    
    sas_url ='https://'+AZURE_ACC_NAME+'.blob.core.windows.net/'+AZURE_CONTAINER+'/'+file_name+'?'+sas

    return sas_url

经过几个小时的阅读,我做了以下事情:我确保两个资源都在同一个区域,并且两个服务器上的时间都相同。 我已经检查了我所有的环境变量,它们都很好。 我手动生成了一个令牌并将其附加到 url 以访问图像。 我已经稍微完成了 azure 存储的配置,但需要一些指导来了解导致这种情况的原因,因为错误消息没有提供太多信息。

建议后更新

我添加了开始时间并将其设为过去 15 分钟以防出现时间偏差。 我还添加了tag作为良好措施的许可。

目的是确保所有参数/参数都正确且匹配,因为签名不匹配。

没有运气!

谢谢各位大侠!

长话:博士

确保您的文件名没有whitespace ,并检查您传递的所有file_name格式是否正确。


问题是%20也被称为file_name中的whitespace ,我天真地 Azure 会处理它或提供警告或错误。

我在 Azure Blob 存储 (file_name) 中的文件名结构是这样的:

targets/my name/logo/Logo-H.jpg

这转化为:

targets/my%20name/logo/Logo-H.jpg

纯粹是我的错误和疏忽,但我认为 Azure 对此会有某种类型的捕获/处理。 我从 URL 中删除了空格并替换为-导致..

targets/my-name/logo/Logo-H.jpg

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM