gpt4 book ai didi

UWP/WinUI 桌面应用访问 Azure Key Vault secret

转载 作者:行者123 更新时间:2023-12-05 07:04:18 26 4
gpt4 key购买 nike

Microsoft 提供了多种方法来安全访问 Azure Key Vault secret ,特别是使用托管身份或服务主体作为身份提供者。但是,这些方法明确设计用于处理基于 Azure 的资源,例如 Web 应用程序和微服务。它们不适用于 UWP/WinUI 桌面应用程序。

到目前为止,我发现允许 UWP/WinUI 桌面应用程序访问 Key Vault 的唯一方法是将应用程序的 Azure 注册信息(TenentId、ClientId 和 ClientSecret -- secret ,它们本身!)加载到环境变量中在创建新的 SecretClient 对象 (Azure.Security.KeyVault.Secrets) 时由 DefaultAzureCredential() 方法获取。

但这意味着我需要将这些 secret 存储在代码或配置文件中,以便在运行时读取。绝对不是最佳实践!我一定是遗漏了什么。

2020 年 UWP/WinUI 桌面应用程序安全访问 Key Vault secret 的最佳做法是什么——同时不会在此过程中暴露其他 secret ?

最佳答案

归根结底,您的应用程序必须存储某种 secret - 因为它需要向您的 Key Vault 实例提供该 secret 以证明该应用程序确实被允许访问存储在其中的 secret 金库。这类似于从数据库中检索值 - 您必须先存储并提供连接字符串,然后才能获取值。

如果不知道您打算如何部署应用程序的特定用例,就不可能建议您应该做什么或不应该做什么。在我们的例子中,我们有一个 WinForms 应用程序,它由我们的支持团队明确安装到我们客户的机器上,这意味着旧的黄金标准 client certificates是我们到目前为止一直在使用的方法 - 显然是自定义验证步骤。

谢天谢地,Key Vault explicitly supports client certificates (以下步骤从链接的 MSDN 复制而来):

  1. 创建 PKCS#12 存档 (.pfx) 证书。创建证书的选项包括 Windows 上的 MakeCert 和 OpenSSL。
  2. 将证书安装到当前用户的个人证书库中。将 key 标记为可导出是可选的。记下证书的指纹,稍后将在此过程中使用。
  3. 将 PKCS#12 存档 (.pfx) 证书导出为 DER 编码证书 (.cer)。
  4. 使用 Azure AD 注册应用(应用注册)。
  5. 将 DER 编码证书 (.cer) 上传到 Azure AD:
    一种。在 Azure AD 中选择应用。
    b.导航到证书和 secret 。
    C。选择上传证书以上传包含公钥的证书。 .cer、.pem 或 .crt 证书是可以接受的。
  6. 将 key 保管库名称、应用程序 ID 和证书指纹存储在应用的 appsettings.json 文件中。
  7. 导航到 Azure 门户中的 key 保管库。
  8. 选择您在 Production environment with Azure Key Vault 部分的 Secret storage 中创建的 key 保管库。
  9. 选择访问策略。
  10. 选择添加访问策略。
  11. 开启Secret权限,为应用提供Get和List权限。
  12. 选择“选择主体”并按名称选择已注册的应用。选择“选择”按钮。
  13. 选择确定。
  14. 选择保存。
  15. 部署应用。

我们目前正在用 Key Vault 替换我们的自定义客户端证书验证器,因为它只会让一切变得更容易 - 从 Azure 门户而不是我们的自定义管理应用程序管理证书和吊销。

关于UWP/WinUI 桌面应用访问 Azure Key Vault secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62961646/

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