如何在Node.js堆栈上的Azure Function App中从Azure密钥库提取秘密密钥

时间:2020-06-22 15:50:59

标签: azure azure-functions azure-keyvault azure-function-app azure-node-sdk

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

谢谢

1 个答案:

答案 0 :(得分:1)

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

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

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

1。在您的功能中启用系统分配的托管身份。

enter image description here

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

enter image description here

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。执行结果。

enter image description here