gpt4 book ai didi

azure - 如何从本地 asp.net 应用程序在 Azure Key Vault 中设置 secret

转载 作者:行者123 更新时间:2023-12-03 16:21:39 27 4
gpt4 key购买 nike

我有一个本地 asp.net core 3.1 应用程序,我想在 Azure Key Vault 中设置 secret 。以下是我使用的来自微软的代码:

string secretName = "xxSecret";

string keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME");
var kvUri = "https://" + keyVaultName + ".vault.azure.net";
var secretClient = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());

string secretValue = "test";
secretClient.SetSecret(secretName, secretValue);
KeyVaultSecret secret = secretClient.GetSecret(secretName);

当我尝试设置 secret 时,我在 Postman 中收到以下错误:

Azure.Identity.AuthenticationFailedException: DefaultAzureCredential authentication failed.
---> Azure.Identity.AuthenticationFailedException: SharedTokenCacheCredential authentication failed.
---> Microsoft.Identity.Client.MsalServiceException: AADSTS70002: The client does not exist or is not
enabled for consumers. If you are the application developer, configure a new application through the
App Registrations in the Azure Portal

我不想注册这个应用程序,但因为我想在本地调试它。我猜问题是我没有设置正确的访问策略。如何授予我的本地应用访问权限?

(在本地运行应用程序之前,我使用 Azure PowerShell 对我的 Azure 目录进行身份验证。)

最佳答案

How do I grant my local app access?

对于本地开发,AzureServiceTokenProvider使用 Visual Studio、Azure CLI 或 Azure AD 集成身份验证获取 token 。每个选项都会按顺序尝试,并且库会使用第一个成功的选项。

使用 Visual Studio 进行身份验证:

登录 Visual Studio 并使用工具 > 选项打开选项

选择Azure 服务身份验证,选择用于本地开发的帐户,然后选择确定

在 azure 上,您需要转到 Azure keyvault。单击访问策略并添加您之前使用获取和设置权限登录的帐户作为 secret 。然后你可以使用你的代码来获取 secret 值。

您还可以使用AzureServiceTokenProvider来获取 secret ,而无需初始化您的 secret 值。

var KeyVaultUrl = "https://xxx.vault.azure.net/secrets/xxx/xxxxxxxxxxxxxx";
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = keyVaultClient.GetSecretAsync(KeyVaultUrl).Result.Value;

关于azure - 如何从本地 asp.net 应用程序在 Azure Key Vault 中设置 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61281683/

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