对于Python代码库,我希望开发人员使用Azure Key Vault访问应用程序秘密,并在部署时,应用程序也应该能够连接。因此,我认为是Active Directory。
但是,我在互联网上找不到任何使用Python SDK来说明这一点的示例。最初,我会考虑检索CLI用户:
from azure.common.credentials import get_azure_cli_credentials
credentials, subscription_id, tenant_id = get_azure_cli_credentials(with_tenant=True)
然后使用检索到的这组凭证来访问密钥库:
from azure.keyvault import KeyVaultClient
vault_url = "https://########.vault.azure.net/"
secret_name = "########"
secret_version = "########"
client = KeyVaultClient(credentials)
secret = client.get_secret(vault_url, secret_name, secret_version)
print(secret)
但是,我检索到一个错误,即:
azure.keyvault.v7_0.models.key_vault_error_py3.KeyVaultErrorException: Operation returned an invalid status code 'Unauthorized'
我可以确认credentials
、subscription_id
和tenant_id
是正确的,并且使用命令行界面,我可以成功检索机密内容。所以它一定是某种特定于Python SDK的东西。
有什么想法吗?
发布于 2019-05-30 15:27:47
看起来这是Python SDK中的一个错误。
https://github.com/Azure/azure-sdk-for-python/issues/5096
您可以在UserPassCredentials类中使用自己的AD用户名和密码。它不是登录的用户,但它可能是您目前所能得到的最接近的用户。
例如:
from azure.common.credentials import UserPassCredentials
credentials = UserPassCredentials('username','password')
client = KeyVaultClient(credentials)
secret = client.get_secret(vault_url, secret_name, secret_version)
print(secret)
发布于 2019-11-22 06:16:34
我尝试了相同的方法,但出现了不同的错误("...audience是无效的...“)直到我更改了添加资源参数的第一个函数调用:
credentials, subscription_id, tenant_id =
get_azure_cli_credentials(resource='https://vault.azure.net', with_tenant=True)
通过此更改,我可以使用与您显示的相同代码访问机密。
发布于 2019-04-11 23:10:50
那么this代码片段呢?将您的代码与示例进行比较,我看不出您在何处设置client_id或租户。
https://stackoverflow.com/questions/55635237
复制相似问题