我们有一堆目前处理秘密的 Windows 服务器应用程序,如下所示;我们的应用程序使用 C#。
- 我们将它们存储在代码中的设置文件中
- 我们使用证书加密存储它们
- 服务器拥有带有私钥的证书,因此它们可以解密秘密
我们正在考虑实施 Hashicorp Vault。只需将加密存储解密替换为将密钥存储在 KV 引擎中的 Vault 中,然后在我们的应用程序中获取它,这似乎很容易——这完全消除了该证书。由于我们在本地,我需要弄清楚我们的身份验证方法。
我们有不同的应用程序在不同的机器上运行,并且它有点动态(不像自动缩放场景那样多,但不是永久的 - 所以我们不能一次将服务器分配给角色并依赖于 Kerberos 身份验证)。
我不确定如何让 AppRole 在我们的场景中工作。我们没有“受信任的平台”或“受信任的实体”示例,没有 Nomad、Chef、Terraform 等。我们在域中有 Windows 机器,并且我们有一个可以查询的本土编排器“这个机器名称运行这些应用程序”,所以也许可以在那里做一些事情?
我是否在“编写您自己的身份验证插件”领域,与我们本土的协调器交谈?
编辑 - Reddit 上的某个人建议,如果我们的应用程序都与它们运行的 Windows 域帐户是一对一的,那么这是一个简单的解决方案,因为这样我们就可以使用遏制身份验证。这不是我们目前的架构方式,但我们必须以某种方式解决这个问题,这可能会做得很好。
第二次编辑 - 用“应用程序”替换“服务”,因为我们的大多数服务实际上并没有作为 Windows 服务运行,只是进程。启动器是 Windows 服务,但它启动的各个进程不是。