首页 > 解决方案 > 天蓝色函数中用户分配的托管标识抛出值不能为空

问题描述

我有一个使用 power shell 6.2 创建的 http post azure 函数。它需要访问 azure key vault 才能检索机密。当我分配系统分配的托管标识时,它可以完美运行。但是,在使用用户分配的托管标识执行时收到附加错误。

到目前为止我所做的。

  1. 在 Azure 托管标识服务下创建了用户分配的托管标识。
  2. 在我的 KeyVault 访问控制(IAM)中添加了贡献者角色 -> 在分配访问下拉列表中我选择了用户分配的托管身份。
  3. 此外,在 KeyVault 访问策略部分,添加了具有获取和列出机密权限的新创建的用户分配身份
  4. 最后在 azure 函数的标识选项卡中添加了新用户分配的托管标识。

我已阅读用户分配的托管标识需要 clinet_id 但不知道在 azure 函数的发布请求中配置它的位置。

在此处输入图像描述

标签: azureazure-functionspowershell-6.0

解决方案


使用 REST 协议,你可以参考这篇文章来附加一个clientid这样的查询参数,

GET /MSI/token?resource=https://vault.azure.net&api-version=2017-09-01&clientid=xxxx 

使用 SDK,您可以clientid在连接字符串中指定,请参阅https://docs.microsoft.com/en-us/azure/key-vault/service-to-service-authentication#connection-string-support

在此处输入图像描述


推荐阅读