gpt4 book ai didi

python - Azure Blob 的交互式凭据

转载 作者:行者123 更新时间:2023-12-03 05:39:11 31 4
gpt4 key购买 nike

我得到了这个代码来在 Jupyter Notebook 中获取交互式凭证(这会打印一个 url 和一个用于登录的设备代码):

from msrestazure.azure_active_directory import AADTokenCredentials
import adal, uuid, time

def authenticate_device_code():
"""
Authenticate the end-user using device auth.
"""
authority_host_uri = 'https://login.microsoftonline.com'
tenant = 'tenant_id'
authority_uri = authority_host_uri + '/' + tenant
resource_uri = 'https://management.core.windows.net/'
client_id = 'client_id'

context = adal.AuthenticationContext(authority_uri, api_version=None)
code = context.acquire_user_code(resource_uri, client_id)
print(code['message'])
mgmt_token = context.acquire_token_with_device_code(resource_uri, code, client_id)
credentials = AADTokenCredentials(mgmt_token, client_id)

return credentials

经过身份验证后,它会返回 AADTokenCredentials 对象。

问题是我是否可以使用它来访问 Blob Store:

from azure.storage.blob import BlobServiceClient
service = BlobServiceClient(account_url=uri, credential=credentials)

根据文档,BlobServiceClient 仅接受 SAS token 或 TokenCredentials 类的实例,但我找不到使用交互式身份验证的方法。

最佳答案

是的,支持 AAD token 身份验证。请参阅here .

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient
token_credential = DefaultAzureCredential()

blob_service_client = BlobServiceClient(
account_url="https://<my_account_name>.blob.core.windows.net",
credential=token_credential
)

要使用设备代码身份验证,您需要将 here 中的 token_credential = DefaultAzureCredential() 替换为 DeviceCodeCredential .

关于python - Azure Blob 的交互式凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60056451/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com