Oso*_*nin 5 c# azure azure-keyvault azure-managed-identity .net-6.0
我想将 Azure Key Vault 添加到我的 C# 应用程序,但我想在本地运行代码。有可能的办法吗?很多文档都说 AKV 仅适用于 Azure 环境,但这里中表示,他们在演示中显示的示例代码也可以在本地主机中执行。
目前使用的是Net6版本。为了创建我的 Azure 资源,我按照第一个链接中的视频教程进行操作。他们遵循这个模式。

因此,您可以在这里看到我的 Key Vault 访问策略。RBAC 已检查。

托管身份已分配给 Key Vault 作为 Key Vault 管理员的角色(用于测试目的)
我的托管身份在“身份”选项卡上的“应用服务”中被分配为“用户分配的托管身份”。
我的 Program.cs 如下所示:
var userAssignedClientId = "Some guid";
if (!string.IsNullOrEmpty(MyVaultUri))
{
builder.Configuration.AddAzureKeyVault(
new Uri(MyVaultUri),
new DefaultAzureCredential(new DefaultAzureCredentialOptions { ManagedIdentityClientId = userAssignedClientId }));
}
Run Code Online (Sandbox Code Playgroud)
我已经声明了环境变量AZURE_TENANT_ID,,AZURE_CLIENT_IDAZURE_CLIENT_SECRET块包 Azure.Identity v1.4.0、Azure.Security.KeyVault.Secrets v4.3.0 安装。
这就是我在 localhost 中收到的错误:Azure.RequestFailedException: '调用者无权对资源执行操作。
当想要连接到在线资源时,Microsoft 提供了一些可用选项。其中之一是InteractiveBrowserCredential,它会提示您输入凭据的问题。
另一个是DefaultAzureCredential,乍一看很具有欺骗性,因为默认值是什么?根据文档,它会尝试六种不同类型的授权,然后在授权失败时返回错误。请注意,如果其中一种类型被禁用,则不会使用它。
如果您在 Visual Studio 中使用与 Portal.azure.com 相同的凭据登录,则身份验证将无缝进行。
另请注意,当您想在本地主机上使用环境变量时。最佳实践是使用保存变量的设置文件,而不是在计算机上定义这些变量。不要忘记将该设置文件添加到 gitignore 文件中。您不希望将这些秘密发布到公共存储库。
| 归档时间: |
|
| 查看次数: |
2628 次 |
| 最近记录: |