Azure密钥库,请求多个秘密

时间:2019-06-17 09:49:10

标签: node.js azure-keyvault

我正在使用以下节点库azure-keyvault从天蓝色的密钥库中检索存储的机密。 Ive仅发现client.getSecret api被公开来检索秘密值。我正在寻找一种在一次调用中检索多个秘密值的方法。我还没有找到。有什么办法可以解决我所缺少的或根本不支持的问题。

3 个答案:

答案 0 :(得分:1)

您可以使用read-azure-secrets npm软件包,它将所有秘密返回给您。 例如

    const secretClient = require('read-azure-secrets');

    async function loadKeyVaultValues() {

        let applicationID = '';
        let applicationSecret = '';
        let vaultURL = 'https://<your-key-vault-name>.vault.azure.net/';
        let secrets = await secretClient.getSecrets(applicationID, applicationSecret, vaultURL);

        secrets.forEach(secret => {
            console.log(secret);
        });

    }

loadKeyVaultValues();

答案 1 :(得分:0)

您可以尝试使用REST Api公开的client.getSecrets(..)方法。

请仔细阅读以下有用的博客,其中已实现了所有方法。

LINK:https://www.red-gate.com/simple-talk/cloud/platform-as-a-service/using-azure-keyvault-with-node-js/

答案 2 :(得分:0)

这是立即获取多个客户端机密的完整代码:

var credentials = new KeyVault.KeyVaultCredentials(authenticator);
var client = new KeyVault.KeyVaultClient(credentials);

client.setSecret(vaultUri, 'mysecret', 'my password', options, function (err, secretBundle) {

  // List all secrets
  var parsedId = KeyVault.parseSecretIdentifier(secretBundle.id);
  client.getSecrets(parsedId.vault, parsedId.name, function (err, result) {
    if (err) throw err;

    var loop = function (nextLink) {
      if (nextLink !== null && nextLink !== undefined) {
        client.getSecretsNext(nextLink, function (err, res) {
          console.log(res);
          loop(res.nextLink);
        });
      }
    };

    console.log(result);
    loop(result.nextLink);
  });
});

您可以使用以下节点js找到有关Azure密钥保险库的完整参考:

http://azure.github.io/azure-sdk-for-node/azure-keyvault/latest/KeyVaultClient.html#getSecrets

http://azure.github.io/azure-sdk-for-node/azure-keyvault/latest/

希望有帮助。