gpt4 book ai didi

c# - 有没有办法通过 Visual Studio 上的托管标识在本地主机中使用 Azure Key Vault?

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

我想将 Azure Key Vault 添加到我的 C# 应用程序,但我想在本地运行代码。有可能的办法吗?很多文档都说 AKV 仅适用于 Azure env,但是 here微软开发人员在视频中表示,他们在演示中展示的示例代码也可以在本地主机中执行。

目前使用的是Net6版本。为了创建我的 Azure 资源,我按照第一个链接中的视频教程进行操作。他们遵循这个模式。 Flow described to use when using Managed Identities

因此,您可以在此处查看我的 Key Vault 访问策略。 RBAC 已检查。 My kv access policies

托管身份已分配给 key 保管库作为 key 保管库管理员的角色(用于测试目的)

我的托管身份在“身份”选项卡上的“应用服务”中被分配为“用户分配的托管身份”。

我的 Program.cs 如下所示:

var userAssignedClientId = "Some guid";

if (!string.IsNullOrEmpty(MyVaultUri))
{
builder.Configuration.AddAzureKeyVault(
new Uri(MyVaultUri),
new DefaultAzureCredential(new DefaultAzureCredentialOptions { ManagedIdentityClientId = userAssignedClientId }));
}

我已声明环境变量 AZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRET 和 block 包 Azure.Identity v1.4.0、Azure.Security。已安装 KeyVault.Secrets v4.3.0。

这就是我在本地主机中收到的错误:Azure.RequestFailedException:'调用者无权对资源执行操作。

enter image description here

最佳答案

当想要连接到在线资源时,Microsoft 提供了一些可用选项。其中之一是InteractiveBrowserCredential这会提示您输入凭据的问题。

另一个是 DefaultAzureCredential乍一看非常具有欺骗性,因为默认值是什么?根据文档,它会尝试六种不同类型的授权,然后在授权失败时返回错误。请注意,如果其中一种类型被禁用,则不会使用它。

如果您在 Visual Studio 中使用与 Portal.azure.com 相同的凭据登录,则身份验证将无缝进行。

另请注意,当您想在本地主机上使用环境变量时。最佳实践是使用保存变量的设置文件,而不是在计算机上定义这些变量。不要忘记将该设置文件添加到 gitignore 文件中。您不希望将这些 secret 发布到公共(public)存储库。

关于c# - 有没有办法通过 Visual Studio 上的托管标识在本地主机中使用 Azure Key Vault?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72430928/

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