gpt4 book ai didi

python - 是否可以使用服务主体通过 Azure Python SDK 方法 get_client_from_auth_file 返回 KeyVaultClient?

转载 作者:行者123 更新时间:2023-12-02 07:05:54 28 4
gpt4 key购买 nike

使用 Azure Python SDK,我想使用 get_client_from_auth_file 方法返回 KeyVaultClient,以便从 KeyVault 获取 secret ,而无需通过 KeyVaultManagementClient

根据documentation ,似乎可以从任何 SDK 客户端类创建客户端。

我能够做到这一点:

from azure.common.client_factory import get_client_from_auth_file
from azure.mgmt.keyvault import KeyVaultManagementClient
_kv_mgmt_client = get_client_from_auth_file(KeyVaultManagementClient)

但不是这个:

from azure.common.client_factory import get_client_from_auth_file
from azure.keyvault import KeyVaultClient
_kv_client = get_client_from_auth_file(KeyVaultClient)

这是错误消息:TypeError:__init__() 获得意外的关键字参数“base_url”

更新:

经过审核,get_client_from_auth_file 返回多个结果,包括 base_url,因此以下辅助函数可以解决 TypeError

class KeyVaultClientHelper:
def __init__(self, credentials, **kwargs):
self._credentials = credentials

并且 KeyVaultClient 会成功,直到它尝试获取 secret 并返回未经授权

helper = get_client_from_auth_file(KeyVaultClientHelper)
client = KeyVaultClient(helper._credentials)
print(client.get_secret("http://my-vault-url...", "MY-KEY", '').value))

但是,我使用具有相同身份验证文件的 ServicePrincipalCredential 成功获取了 secret 。

最佳答案

这是 azure-common 中的一个错误,已在 1.1.22 中修复: https://pypi.org/project/azure-common/1.1.22/

谢谢!

关于python - 是否可以使用服务主体通过 Azure Python SDK 方法 get_client_from_auth_file 返回 KeyVaultClient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56432363/

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