当前位置: 首页 > 知识库问答 >
问题:

Python Azure函数-带有密钥库的MSI身份验证

琴献
2023-03-14

我试图设置一个Python Azure函数,该函数将使用托管标识从密钥库检索机密。我已经给了我的函数应用程序的托管身份权限,以访问和检索密钥库中的秘密。我已经根据下面的Microsoft文档对Python脚本进行了这样的配置:

https://docs.microsoft.com/en-us/python/api/overview/azure/key-vault?view=azure-python

https://docs.microsoft.com/en-us/azure/developer/python/azure-sdk-authenticate#mgmt-auth-msi

如果我使用链接中为MSI身份验证提供的示例,它可以工作。但是当我使用密钥存储库方法时,我会收到以下错误:

MSIAuthentication' object has no attribute 'get_token'

我的代码如下所示

    if name:
        # Create MSI Authentication
        credentials = MSIAuthentication()

        try:
            secret_client = SecretClient(vault_url="https://myvault.vault.azure.net", credential=credentials)

            secret = secret_client.get_secret("mySecret") 

            return func.HttpResponse(f"My super secret is: {secret.value}!")

        except Exception as e:
            err = "type error: " + str(e)
            return func.HttpResponse(f"{err}")

(我知道我可以利用应用程序设置来设置到Key Vault的链接,并在我的Python脚本中引用该变量。这个方法的问题是Key Vault Key是当键旋转时,需要重新启动函数应用程序)

共有1个答案

尹冠宇
2023-03-14

您需要将MSIAuthentication更改为ManagedIdentityCredential。那它就会很好用了。这里的示例代码:

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

credentials = ManagedIdentityCredential()

secret_client = SecretClient(vault_url="https://myKeyvault.vault.azure.net", credential=credentials)
secret = secret_client.get_secret("mysecret")
print(secret.value)
 类似资料:
  • 我正试图用我的Azure函数使用PowerShell连接到Keyvault。已打开托管服务标识(MSI),并且在Keyvault中,我授予MSI“GET”和“List”访问策略。使用下面的脚本,我成功地获得了一个访问令牌,但是当我向Keyvault发出请求时,我总是收到401响应。 知道为什么令牌不够吗?

  • 我已经开始开发一个由Google的Firebase服务提供支持的应用程序。我很好奇数据传输在Auth和数据库服务中是否安全。如果没有,我是否可以阅读任何材料来源以实现加密? 非常感谢。

  • 我想在Docker上设置一个配置了身份验证的Cassandra容器。目前我使用的是官方的Cassandra Docker图像,但它似乎没有提供启用认证模式的选项(通过ENV thingies)。 一种可能性是设置一个自己的存储库,从Cassandra Docker GitHub克隆并修改此文件,以便它也接受与身份验证相关的选项,但对于我非常简单的任务来说,这似乎有点复杂。有没有人知道一个更简单的解

  • 问题内容: 我正在努力为使用网关的REST API设计SAML2.0身份验证。在我的后端和应用程序之间使用REST。我正在使用Java Servlet过滤器和Spring。 我看到两种可能性: 每次将SAML令牌添加到标头中。 使用SAML进行一次身份验证,然后使用客户端与网关之间的会话或类似(安全对话)进行身份验证。 情况1: 这是一个很好的解决方案,因为我们仍然是RESTful,但是: SAM

  • 本文向大家介绍C#验证身份证的函数,包括了C#验证身份证的函数的使用技巧和注意事项,需要的朋友参考一下 这段C#代码主要是验证身份证的开头和身份证的格式和长度是否正确,没有按照身份证的编码规则进行严格验证 更为复杂些的验证方法: 方法三: 以上所述就是本文的全部内容了,希望大家能够喜欢。