У меня есть 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 };```