我在Azure中创建了一些设置,我需要在react中从那里获取一些秘密密钥。
const KeyVault = require('azure-keyvault');
const msRestAzure = require('ms-rest-azure');
var KEY_VAULT_URI = "https://mydomain.com.vault.azure.net/";
msRestAzure.loginWithAppServiceMSI({resource: 'https://vault.azure.net', msiEndpoint: 'https://vault.azure.net', msiSecret: '69418689F1E342DD946CB82994CDA3CB', msiApiVersion: '' }).then((credentials) => {
const keyVaultClient = new KeyVault.KeyVaultClient(credentials);
var data = keyVaultClient.getSecret(KEY_VAULT_URI, 'My_Secret_Key');
console.log(data);
});我有点问题,net::ERR_NAME_NOT_RESOLVED,我想我漏掉了什么。有谁能建议如何从Azure那里取回反应Js中的秘密密钥?
发布于 2019-08-07 03:02:56
使用ms-rest-azure的loginWithAppServiceMSI()方法将自动检测您是否在WebApp上,并从MSI端点获取令牌。因此,您必须在Azure webapp上托管您的代码。有关详细信息,请参阅这篇文章。
function getKeyVaultCredentials(){
return msRestAzure.loginWithAppServiceMSI({resource: 'https://vault.azure.net'});
}
function getKeyVaultSecret(credentials) {
let keyVaultClient = new KeyVault.KeyVaultClient(credentials);
return keyVaultClient.getSecret(KEY_VAULT_URI, 'secret', "");
}
getKeyVaultCredentials().then(
getKeyVaultSecret
).then(function (secret){
console.log(`Your secret value is: ${secret.value}.`);
}).catch(function (err) {
throw (err);
});如果不必使用托管服务标识(MSI),则可以使用msRestAzure.loginWithServicePrincipalSecret(clientId, secret, domain)获取凭据。
function getKeyVaultCredentials(){
return msRestAzure.loginWithServicePrincipalSecret(clientId, secret, domain);
}https://stackoverflow.com/questions/57376119
复制相似问题