我正在尝试的是相当简单的。但是,我每次都收到未授权错误。
- 我有一个Azure容器,其中包含一些文件
- 我有一个具有客户端凭据的Azure AD帐户
- 尝试使用下面的Python代码下载Blob并获得Not Authorized错误。我做错了什么?
from azure.storage.blob import BlobServiceClient
from azure.identity import ClientSecretCredential
clientId="xxxxx"
clientSecret="xxxxx"
tenantId="xxxxx"
containerName="xxxxx"
account_url="https://xxxxx.blob.core.windows.net"
containerName="xxxxx"
blobName="xxxxx.txt"
token_credential=ClientSecretCredential(tenant_id=tenantId, client_id=clientId, client_secret=clientSecret)
blob_service_client=BlobServiceClient(account_url=account_url, credential=token_credential)
blob_client=blob_service_client.get_blob_client(container=containerName, blob=blobName)
downloader=blob_client.download_blob()
字符串
有没有一个get_token我需要调用的地方,我错过了?用户在Azure存储帐户中具有以下访问权限:
- 存储Blob数据贡献者
- 存储Blob数据读取器
我做错了什么?
1条答案
按热度按时间pgccezyw1#
我看不出你的代码有什么问题。
你可以试试
token_credential.get_token(“https://storage.azure.com/.default“)
如果成功获取token,则可能是您的服务主体没有权限。或者您可能使用了不正确的tenant_id/client_id/client_secret值。
(我在微软的Azure SDK团队工作)