首页 > 解决方案 > 如何在 Nodejs 堆栈上的 Azure Function App 中从 Azure 密钥库中提取密钥

问题描述

我在 Nodejs 版本 12 中创建了一个 Azure Function 应用程序。我的托管环境是 windows。捕获保存在我的函数内的 Azure 密钥库中的用户名和密码的最简单方法是什么。我也在使用内联代码编辑器,所以应该如何在代码中捕获凭据。

谢谢

标签: azureazure-functionsazure-keyvaultazure-function-appazure-node-sdk

解决方案


上述答案中使用的节点 SDK 将被弃用,并且不会有新功能和版本。相反,新版本在这里发布:

https://www.npmjs.com/package/@azure/keyvault-secrets

以下是检索秘密值的详细步骤,供您参考。

1.在您的功能中启用系统分配的托管标识。

在此处输入图像描述

2.将此服务主体添加到您的密钥保管库的访问策略中。

在此处输入图像描述

3.将依赖项安装到您的函数中。

  "dependencies": {
    "@azure/identity": "^1.0.3",
    "@azure/keyvault-secrets": "^4.0.4"
  }

4.这是我的测试功能代码

module.exports = async function (context, req) {

const { DefaultAzureCredential } = require("@azure/identity");
const { SecretClient } = require("@azure/keyvault-secrets");
const keyVaultName = "tonykeyvault20190801";
const KVUri = "https://" + keyVaultName + ".vault.azure.net";

const credential = new DefaultAzureCredential();
const client = new SecretClient(KVUri, credential);

const retrievedSecret = await client.getSecret("username");
const username=retrievedSecret.value;
context.log(username);
  context.res = {
      body: username 
  };
}

5.执行结果。

在此处输入图像描述


推荐阅读