【问题标题】:Azure Key Vault - is there a .NET Core API for that?Azure Key Vault - 是否有用于此的 .NET Core API?
【发布时间】:2021-03-05 16:44:45
【问题描述】:

我正在寻找一个简单的类,允许访问我在 Ubuntu 服务器上运行的 .NET Core 应用程序中的 Azure Key Vault 机密。我不想用Powershell,不想花太多时间在配置上。

有一个 REST API。我可以在上面写一个包装器,但我怀疑这个包装器应该已经存在于 .NET Core 框架中,我就是找不到。

那么,是否有包含一些文档和示例的 Azure Key Vault REST API 的 .NET Core 包装器?

我需要在没有 ASP.NET 的情况下使用它也很重要。只是普通的 .NET Core 控制台应用程序。

【问题讨论】:

    标签: c# security .net-core azure-keyvault


    【解决方案1】:

    如果您只需提供正确的凭据,就可以使用这些 NuGet 包访问任何应用程序访问 AKV。

      <PackageReference Include="Azure.Security.KeyVault.Certificates" Version="4.1.0" />
      <PackageReference Include="Azure.Security.KeyVault.Keys" Version="4.1.0" />
      <PackageReference Include="Azure.Security.KeyVault.Secrets" Version="4.1.0" />
    

    然后您可以很容易地创建一个客户端实例,如下所示:

    var credentials = new ClientSecretCredential(tenantId: tenantId, clientId: clientId, clientSecret: secret);
    var certClient = new CertificateClient(new Uri(vaultUrl), credentials);
    var secretClient = new SecretClient(new Uri(vaultUrl), credentials);
    

    然后你对 AKV 进行操作。

    【讨论】:

    • 嗯,它尝试工作,但是我得到 403,我的应用程序没有权限。确实如此。我设置访问策略,我注册了应用程序。一切都设置好了,但我得到的只是 403。
    • 获得访问权限可能会很棘手。该应用还需要对 AKV 具有适当的访问权限,包括 GET 和 LIST 操作。
    • 我明白了。您没有在应用程序字段中指定应用程序,而是在主体字段中指定应用程序;) Azure 面板很奇怪。它现在可以工作了,但是,仍然存在一个问题 - 如何将密钥存储到保险库;)我猜 - 在与源分开的文件中,对吧?
    • 你在哪里部署你的应用程序?
    • Azure 上的 Ubuntu VM。我在我的 Windows 机器上进行测试,然后将其上传到我的 Linux 服务器。
    猜你喜欢
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 2020-08-29
    • 2016-04-24
    相关资源
    最近更新 更多