如何在 React JS 中检索 Azure Key Vault

How to retrieve Azure Key Vault in React JS

我在 Azure 中创建了一些设置,我需要在 React js 中从那里获取一些密钥

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,我想我遗漏了什么。谁能建议如何在 React Js 中从 Azure 检索密钥

使用 ms-rest-azure 中的 loginWithAppServiceMSI() 方法将自动检测您是否在 WebApp 上并从 MSI 端点获取令牌。所以你必须在 Azure webapp 上托管你的代码。详情请参阅 this article

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);
});

如果您不必使用 Managed Service Identity (MSI),您可以使用 msRestAzure.loginWithServicePrincipalSecret(clientId, secret, domain) 获取凭据。

function getKeyVaultCredentials(){
        return msRestAzure.loginWithServicePrincipalSecret(clientId, secret, domain);
    }