- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将 Azure Key Vault 添加到我的 C# 应用程序,但我想在本地运行代码。有可能的办法吗?很多文档都说 AKV 仅适用于 Azure env,但是 here微软开发人员在视频中表示,他们在演示中展示的示例代码也可以在本地主机中执行。
目前使用的是Net6版本。为了创建我的 Azure 资源,我按照第一个链接中的视频教程进行操作。他们遵循这个模式。
因此,您可以在此处查看我的 Key Vault 访问策略。 RBAC 已检查。
托管身份已分配给 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_ID
、AZURE_CLIENT_ID
、AZURE_CLIENT_SECRET
和 block 包 Azure.Identity v1.4.0、Azure.Security。已安装 KeyVault.Secrets v4.3.0。
这就是我在本地主机中收到的错误:Azure.RequestFailedException:'调用者无权对资源执行操作。
最佳答案
当想要连接到在线资源时,Microsoft 提供了一些可用选项。其中之一是InteractiveBrowserCredential这会提示您输入凭据的问题。
另一个是 DefaultAzureCredential乍一看非常具有欺骗性,因为默认值是什么?根据文档,它会尝试六种不同类型的授权,然后在授权失败时返回错误。请注意,如果其中一种类型被禁用,则不会使用它。
如果您在 Visual Studio 中使用与 Portal.azure.com 相同的凭据登录,则身份验证将无缝进行。
另请注意,当您想在本地主机上使用环境变量时。最佳实践是使用保存变量的设置文件,而不是在计算机上定义这些变量。不要忘记将该设置文件添加到 gitignore 文件中。您不希望将这些 secret 发布到公共(public)存储库。
关于c# - 有没有办法通过 Visual Studio 上的托管标识在本地主机中使用 Azure Key Vault?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72430928/
我是一名优秀的程序员,十分优秀!