gpt4 book ai didi

azure - 使用用户名和密码进行 Keyvault 身份验证

转载 作者:行者123 更新时间:2023-12-02 08:27:49 25 4
gpt4 key购买 nike

客户已创建 key 保管库并存储凭据。为了验证 key 保管库,我在节点中创建了应用程序,并使用客户端 ID 和客户端 key ,我能够读取 key 。但现在客户不想使用 client id 和 client Secret ,而是使用 AZURE 的用户名和密码来访问程序中的 keyvault 。它是一个无需 MFA 即可访问 keyvault 的专用用户。

我不确定我们是否可以使用节点js中的用户名和密码访问keyvault。请推荐。

谢谢

最佳答案

对于这个要求,我还认为使用用户名密码流程是不必要的,客户端凭证流程应该更好(正如评论中提到的 juunas )。但如果客户仍然想使用用户名密码流程来实现,我可以提供如下示例供您引用:

1. 您应该在 AD 中使用 native 平台而非 Web 平台注册应用程序。 enter image description here enter image description here

并请检查“将应用程序视为公共(public)客户端”是否已启用。 enter image description here

如果您的应用程序是 Web 平台,当您运行 Node js 代码时,即使您使用用户名密码流程,它也会显示错误消息,要求您提供“客户端 key ”。

2. 您需要向您的应用添加 azure Key Vault 权限。 enter image description here enter image description here并且不要忘记授予管理员同意。

3.然后您可以引用下面的代码来获取 secret 值。

const KeyVault = require('azure-keyvault');
const { AuthenticationContext } = require('adal-node');

const clientId = '<clientId>';
const username = '<username>';
const password = '<password>';
var secretAuthenticator = function (challenge, callback) {
var context = new AuthenticationContext(challenge.authorization);
return context.acquireTokenWithUsernamePassword(challenge.resource, username, password, clientId, function(
err,
tokenResponse,
) {
if (err) throw err;

var authorizationValue = tokenResponse.tokenType + ' ' + tokenResponse.accessToken;
return callback(null, authorizationValue);
});
};

var credentials = new KeyVault.KeyVaultCredentials(secretAuthenticator);
var client = new KeyVault.KeyVaultClient(credentials);
client.getSecret("https://<keyvaultname>.vault.azure.net/", "<secret name>", "<secret version>", function (err, result) {
if (err) throw err;

console.log("secret value is: " + result.value);
});

关于azure - 使用用户名和密码进行 Keyvault 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63545718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com