gpt4 book ai didi

asp.net - 具有 Azure Key Vault 的本地 ASP.NET Framework Web 应用程序

转载 作者:行者123 更新时间:2023-12-02 02:36:22 24 4
gpt4 key购买 nike

我们正在尝试保护内部 ASP.NET Framework Web 应用程序中的应用程序 secret 。向我提供的最初计划是使用 Azure Key Vault。我开始使用 Visual Studio Enterprise 订阅进行开发工作,这在本地似乎运行良好。

我们在公司的生产环境中创建了第二个 Key Vault,而且我可以在本地使用它,因为我自己的 AAD 帐户可以访问该保管库。然而,在这个项目(4.7.2 Web Forms Web 应用程序)中,我没有看到任何指定我们为应用程序创建的访问策略主体的方法。

我的 google-fu 失败了:是否有任何文档解释如何执行此操作?这种情况(Azure 环境之外的本地 ASP.NET Framework 应用程序访问 Key Vault 以获取配置值)是否可能?

谢谢。

更新:我无法找到允许我在“添加连接服务”对话框中使用访问策略主体的解决方案。我有点惊讶它不在那里,或者隐藏得足以让我躲避。所以我最终编写了自己的 Key Vault Secret-Reader 函数,类似于标记的答案。希望这对某人有帮助...

最佳答案

在这种情况下,您的选择是使用服务主体来访问 keyvault,请按照以下步骤操作,我的示例从 keyvault 获取 key 。

1. Register an application with Azure AD and create a service principal .

2. Get values for signing increate a new application secret .

3.导航至门户中的 key 保管库 -> Access policies -> 为服务主体添加正确的 secret 权限。

4.然后使用下面的代码,替换<client-id> , <tenant-id> , <client-secret>与之前获得的值。

using System;
using Microsoft.Azure.KeyVault;
using Microsoft.Azure.Services.AppAuthentication;

namespace test1
{
class Program
{
static void Main(string[] args)
{
var azureServiceTokenProvider = new AzureServiceTokenProvider("RunAs=App;AppId=<client-id>;TenantId=<tenant-id>;AppKey=<client-secret>");
var kv = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = kv.GetSecretAsync("https://keyvaultname.vault.azure.net/", "mySecret123").GetAwaiter().GetResult();
Console.WriteLine(secret);

}
}
}

enter image description here

关于asp.net - 具有 Azure Key Vault 的本地 ASP.NET Framework Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64268193/

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