当前位置: 首页 > 知识库问答 >
问题:

UWP/WinUI桌面应用程序访问Azure Key Vault秘密

公孙阳羽
2023-03-14

Microsoft提供了几种方法来获得对Azure密钥存储库机密的安全访问,特别是使用托管身份或服务主体作为身份提供者。然而,这些方法被明确地设计用于处理基于Azure的资源,如web应用程序和微服务。它们不能与UWP/WINUI桌面应用程序一起工作。

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

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

在2020年,UWP/WINUI桌面应用程序有哪些最佳实践可以安全地访问密钥库秘密--在此过程中不暴露其他秘密?

共有1个答案

柳仲卿
2023-03-14

在一天结束时,应用程序必须存储某种类型的秘密--因为它需要将该秘密提供给您的密钥存储库实例,以证明应用程序确实被允许访问存储在该存储库中的秘密。这类似于从数据库中检索值--在获取值之前,您必须存储并提供连接字符串。

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

值得庆幸的是,Key Vault显式支持客户端证书(以下步骤从链接的MSDN中复制):

    null

我们目前正在用Key Vault替换我们的自定义客户端证书验证器,因为它将使所有事情都变得更加容易--从Azure Portal而不是我们的自定义管理应用程序中管理证书和撤销。

 类似资料:
  • 在学习这本书的过程中,你已经掌握了很多关于 Git 的命令。虽然这些是在学习过程中不可缺少的,但是版本控制的核心并不是让你学习所有的命令和参数。 当你掌握一些基本的概念,再加上一个带有用户图形界面的应用程序的帮助,就可以让你的日常工作变得更加简单。一个最大的好处就是它会为你提供了一个可视化的用户操作界面。 在桌面应用程序中,很多任务使用起来会更加容易和更方便。并且你也不需要记住那几十个繁琐的 Gi

  • 作者:陈希章 发表于 2017年3月22日 桌面应用程序,在我这篇文章的语境中,我是特指在Windows桌面上面直接运行的.NET应用程序,包括Console Application,WPF Application,Windows Forms Application, UWP Application,并且限于篇幅,我只会以Console Application作为演示,因为无论表现形式如何不同,它

  • 我试图在JMeter中记录一个桌面应用程序(银行应用程序)。该应用程序使用SSO登录。在记录JMeter的应用程序时,我面临以下错误。 我已经尝试过添加授权管理器以及将实现更改为Java,但徒劳无功。 JMeter中的错误:- 错误o.a.j.p.h.s.HTTPJavaImpl:readResponse:java.io。IOException:服务器返回了URL:https://2020-07-

  • 在本章中,我们将讨论如何使用.NET Core创建UWP应用程序。 UWP也被称为Windows 10 UWP应用程序。 此应用程序不能在以前版本的Windows上运行,但只能在未来版本的Windows上运行。 现在按照下面这些步骤来创建并实现一个UWP应用程序。 首先,启动Visual Studio 2017社区版本。 点击菜单:文件,并选择:新建 -> 项目; 一个新的项目对话框将会出现。可以

  • 问题内容: 我正在使用SWING开发一个单用户桌面应用程序。我对使用java.sql api的这种应用程序有一点经验,发现它一点都不舒服… 在我的新应用程序中,我第一次尝试使用JPA,我读了很多教程,这些教程使我几乎了解了我所需要的所有内容,但是找不到真正的Java Desktop应用程序的好例子。 我正在考虑使用以下架构,但不知道我是否正确… 我想创建一个MyPersistenceUnit类:

  • 问题内容: 除了Shoes之外,还有什么其他方法可以开发和分发用Ruby编写的跨平台GUI桌面应用程序? 我开始相信_why应用程序的一般错误在使用“鞋”的情况下会严重恶化,并且比两键形式复杂的任何事情都很难维护。 RubyGTK,wxRuby等似乎很有前途,但是它们并不能解决不需要以预先在用户计算机上预装Ruby的方式分发应用程序的问题- 像ruby2exe这样的库似乎非常荒谬。日期和不完整。