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

从本地计算机的Azure Keyvault中读取值

酆勇
2023-03-14

我不确定如何对本地计算机上的Azure keyvault进行身份验证。虽然我明白我可能永远不想在生产场景中这样做,但我确实想在生产前测试它的使用。

这可能吗?

奇怪的原因有两个:

>

  • 首先,虽然我在订阅中使用{MYAPPID}定义了一个SP,但我不记得在我的本地计算机中使用过它,所以我的本地应用程序如何具有与我使用命令:az ad SP create-for-rbac--name“myapp”创建服务主体时获得的相同的APPID(我假定是自动生成的)

    其次,查看我的keyvault的访问策略,似乎{MYAPPID}被授予了对所有事情都做正确处理的权限

    我是不是漏掉了什么?应该换个方式吗?(还是根本没有?)

  • 共有1个答案

    阎祖鹤
    2023-03-14

    在本地运行代码时,DefaultaZureCredential自动使用环境变量Azure_Tenant_IDAzure_Client_IDAzure_Client_Secret所描述的服务主体。

    所以要使用它,请首先在本地的高级设置中设置环境变量,只需使用由AZ AD sp create-for-RBAC创建的AD应用程序的值即可。

    要访问keyvault秘密,需要将与AD应用程序相关的服务主体添加到具有正确秘密权限的keyvault的访问策略get,list

    注意:确保服务主体与您的keyvault位于同一个Azure广告租户中,当您添加它时,请直接搜索app ID/client ID,因为两个不同的app可以具有相同的名称。

    然后使用下面的代码,它为我工作。

    from azure.keyvault.secrets import SecretClient
    from azure.identity import DefaultAzureCredential
    
    credential = DefaultAzureCredential()
    
    client = SecretClient(vault_url="https://keyvaultname.vault.azure.net/", credential=credential)
    
    retrieved_secret = client.get_secret("sec789")
    print(retrieved_secret.value)
    

    有关详细信息,请参阅https://docs.microsoft.com/en-us/azure/key-vault/secrets/quick-create-python

     类似资料:
    • 问题内容: 我正在制作一个对等即时消息传递应用程序。 当前,如果UserA.pool.net对UserB.pool.net说“你好”,则用户A看到“你:你好”,而用户B看到“ UserA.pool.net:你好”。 我希望他们不要看到用户A的名称,而是希望他们看到自己计算机的主机名,以便用户A看到与用户B相同的文本。 问题答案: 简短的答案是,如果您 确实 希望用户A和用户B看到相同的文本,则不能

    • 问题内容: 我可以用 获取mac地址,但是如果我在离线计算机上使用此代码,它将无法正常工作。 那么,如何获得Mac地址? 问题答案: 在Java 6+中,你可以使用。 请记住,计算机不能有网卡,尤其是嵌入式或虚拟的网卡。它也可以有多个。你可以使用来获取所有网卡的列表。

    • 问题内容: 如何检测本地计算机所在的时区? 我尝试过,但是如果机器在德国,那不会给我例如时区“德国”。 有可能吗? 问题答案: 如果您的房东位于德国,则会返回您所在时区的ID(应该是柏林)。 在格式化程序中,您必须执行类似的操作才能在String中包含时区。

    • 如何在cmd上运行csr生成命令。exe openssl req-节点-newkey rsa: 2048-keyoutwww_mydomain_com.key-outwww_mydomain_com.csr-subj"/C=BB/ST=CCC/L=DDD/O=EEE。/OU=IT/CN=mydomain.com"

    • 我想读取本地存储的xml,并且我想通过javascript进行读/写。我的代码如下 在这种情况下,xmlhttp.responseXML为空。

    • 问题内容: 我在本地计算机上使用docker设置了Single Node Basic Kafka Deployment,如Confluent Kafka文档中所述(步骤2-3)。 另外,我还公开了zookeeper的端口2181和kafka的端口9092,以便能够从在本地计算机上运行的Java客户端连接到它们: 问题:当我尝试从主机连接到kafka时,连接失败,因为它无法解析地址:kafka:90