如何从 Nodejs 堆栈上的 Azure Function App 中的 Azure 密钥保管库中提取密钥

Vip*_*ngh 2 azure azure-node-sdk azure-keyvault azure-functions azure-function-app

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

谢谢

Ton*_* Ju 5

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

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

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

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

在此输入图像描述

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

在此输入图像描述

3.安装函数的依赖项。

  "dependencies": {
    "@azure/identity": "^1.0.3",
    "@azure/keyvault-secrets": "^4.0.4"
  }
Run Code Online (Sandbox Code Playgroud)

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 
  };
}
Run Code Online (Sandbox Code Playgroud)

5.执行结果。

在此输入图像描述