8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Azure keyvault 问题 - DefaultAzureCredential 无法从包含的凭据中检索令牌

maidan 2月前

64 0

我正在尝试访问存储在 Azure keyvault 中的 secrets 下的 SAS 令牌。从 azure.identity 导入 DefaultAzureCredential 从 azure.keyvault.secrets 导入 SecretClient# 设置密钥...

我正在尝试访问存储在 Azure keyvault 机密中的 SAS 令牌。

from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient

# Set up Key Vault client
credential = DefaultAzureCredential()
key_vault_url = "https://abcdefghijklmnop.vault.azure.net/"
secret_client = SecretClient(vault_url=key_vault_url, credential=credential)

# Retrieve the secret
secret_name = "xxxxxxxxxx"
secret = secret_client.get_secret(secret_name).value
print(secret)

我收到以下错误,我这样做对吗?

EnvironmentCredential.get_token failed: EnvironmentCredential authentication unavailable. Environment variables are not fully configured.
ManagedIdentityCredential.get_token failed: ManagedIdentityCredential authentication unavailable, no managed identity endpoint found.
SharedTokenCacheCredential.get_token failed: SharedTokenCacheCredential authentication unavailable. No accounts were found in the cache.
VisualStudioCodeCredential.get_token failed: Failed to get Azure user details from Visual Studio Code.
AzureCliCredential.get_token failed: Azure CLI not found on path
DefaultAzureCredential failed to retrieve a token from the included credentials.
Attempted credentials:
    EnvironmentCredential: EnvironmentCredential authentication unavailable. Environment variables are not fully configured.
    ManagedIdentityCredential: ManagedIdentityCredential authentication unavailable, no managed identity endpoint found.
    SharedTokenCacheCredential: SharedTokenCacheCredential authentication unavailable. No accounts were found in the cache.
    VisualStudioCodeCredential: Failed to get Azure user details from Visual Studio Code.
    AzureCliCredential: Azure CLI not found on path
---------------------------------------------------------------------------
ClientAuthenticationError                 Traceback (most recent call last)
Cell In [13], line 11
      9 # Retrieve the secret
     10 secret_name = "xxxxxxxxxxxxxx"
---> 11 secret = secret_client.get_secret(secret_name).value
     12 secret
帖子版权声明 1、本帖标题:Azure keyvault 问题 - DefaultAzureCredential 无法从包含的凭据中检索令牌
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由maidan在本站《azure》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我正在从 Azure 管道运行。还尝试过在 ML Studio 中的 Azure 笔记本上运行

  • 您可以分享相关的 devops 任务吗?看起来您尚未通过 Azure 身份验证?

  • 嗨,Thomas,这是我的机器学习模型的 CICD 管道。之前,我已将 SAS 令牌硬编码到我的代码中,现在我正在尝试修复漏洞。因此,我将其存储在密钥库的秘密中。我正尝试访问它

  • 是的,但是谁/哪个服务主体有权访问此密钥保管库?从错误消息来看,您未在 DevOps 管道中向 Azure 进行身份验证

  • 该错误意味着 Azure 的 DefaultCredential 类无法将您或您的应用验证到 Keyvault。正如您在回溯中看到的,它尝试了几种身份验证方法。

    如何验证?这取决于您是在本地机器上还是在其他应用程序中尝试此操作。

    对于您个人用户,您可以在本地安装 Azure CLI,然后运行 az login 以登录 Azure。 像这样, DefaultCredential 可以使用 AzureCliCredential 。 另一种方法是运行此命令:

    credential = DefaultAzureCredential(exclude_interactive_browser_credential=False)
    

    现在,您选择 DefaultCredential 添加 InteractiveBrowserCredential 为选项,然后会打开一个浏览器窗口,您可以在其中使用个人帐户登录。不用说,这仅适用于个人使用,不适用于其他应用程序。

    例如,在对其他应用程序进行身份验证时,您可以使用环境凭据。在 Azure 中,在可以访问密钥库的 App Reg 中创建一个机密。然后导出 AZURE_CLIENT_ID , AZURE_CLIENT_SECRET AZURE_TENANT_ID 作为环境变量。现在, DefaultCredential 可以用于 EnvironmentCredential 身份验证。

    这是第一步,向 Azure 进行身份验证。如果 DefaultCredential 能够验证您或您的应用程序,您可以使用 credential SecretClient 从所需的 Keyvault 中检索任何机密。

    另请参阅: https://learn.microsoft.com/en-us/python/api/overview/azure/identity-readme?view=azure-python

返回
作者最近主题: