Как получить учетные данные из KeyVault с помощью секретного ключа?

У меня есть хранилище ключей, которое использует секретный ключ для получения учетных данных в javascript. Но мой клиент не хочет использовать «VaultSettings.KeyVaultSettings.azureKeyVaultAccessKey», который является секретным значением приложения, зарегистрированного на портале хранилища ключей. Ниже приведен код для доступа к учетным данным.

В C# есть один метод AzureServiceTokenProvider(), который предоставляет токен, который можно использовать для доступа к учетным данным в keyVault. У нас есть что-то подобное в node.js?

const AuthenticationContext = require('adal-node').AuthenticationContext;
let VaultSettings = require('./KeyVaultSettings');

class KeyVaultUtils {
    constructor(secretNameIdentifier, secretVersionIdentifier) {
            this.secretName = secretNameIdentifier;
            this.secretVersion = secretVersionIdentifier;
    }

    authenticator(challenge, callback) {
            var context = new AuthenticationContext(challenge.authorization);
            return context.acquireTokenWithClientCredentials(challenge.resource,
                VaultSettings.KeyVaultSettings.clientAppId,
                VaultSettings.KeyVaultSettings.azureKeyVaultAccessKey,
                function (err, tokenResponse) {
                if (err) throw err;
                    var authorizationValue = tokenResponse.tokenType + ' ' + tokenResponse.accessToken;
                    return callback(null, authorizationValue);
                });
        }

        getKeyVaultValue(callback) {
            var credentials = new KeyVault.KeyVaultCredentials(this.authenticator);
            var client = new KeyVault.KeyVaultClient(credentials);
            client.getSecret(VaultSettings.KeyVaultSettings.vaultUri, VaultSettings.KeyVaultSettings.azureAccount, VaultSettings.KeyVaultSettings.azureAccountKey)
                .then(function (result) {
                callback(result);
            });
        };
}
module.exports = { KeyVaultUtils };```

person Nikkie08    schedule 28.06.2019    source источник
comment
Для этого вам нужно будет использовать Managed Identity вручную. Я думаю, что в документах тоже что-то было.   -  person juunas    schedule 28.06.2019
comment