gpt4 book ai didi

.net-core - 存储 Azure Vault 客户端 ID 和客户端密码

转载 作者:行者123 更新时间:2023-12-03 23:11:01 25 4
gpt4 key购买 nike

我使用 .NET Core 2.0 和 ASP.NET Core 2.0 进行应用程序开发。 “测试”应用程序是一个 .NET Core 控制台应用程序。我正在编写的核心代码是一个类库。一旦正确测试。我选择这样做是因为我暂时不会使用它(它正在替换旧的 ASPNET 代码)。

无论如何,由于我必须为各种服务使用大量 API key ,因此我决定使用 Microsoft Azure Key Vault 来存储 key 。我已经完成了所有设置并了解这是如何工作的。测试应用程序使用测试 Azure 帐户,因此它并不重要。由于这正在取代遗留代码,而且还处于起步阶段,因此我是唯一的开发人员。

基本上,我遇到了这个问题。我所看到的关于 Azure Key Vault 的信息并不多。很多例子都存储了客户端 ID 和 key 纯文本 json 文件(例如: https://www.humankode.com/asp-net-core/how-to-store-secrets-in-azure-key-vault-using-net-core )。我真的不明白这怎么可能是安全的。如果有人获得这些 key ,他们可以轻松访问 Azure 存储的信息,对吗?

Microsoft MSDN 有一个授予访问权限的 powershell 命令(我丢失了原始链接,这是我能找到的最接近的:https://www.red-gate.com/simple-talk/cloud/platform-as-a-service/setting-up-and-configuring-an-azure-key-vault/)我的开发操作系统是 Windows 10,我的主要服务器操作系统是 Debian。

我将如何处理这个问题?

最佳答案

是的,您是对的,纯文本配置文件只能在开发期间使用,不能用于生产目的。通常,可用选项取决于您托管应用程序的位置和方式。

如果您有 Azure Web 应用程序,则至少有以下内置选项 ( from the documentation ):

  • add the ClientId and ClientSecret values for the AppSettings in the Azure portal. By doing this, the actual values will not be in the web.config but protected via the Portal where you have separate access control capabilities. These values will be substituted for the values that you entered in your web.config. Make sure that the names are the same.

  • authenticate an Azure AD application is by using a Client ID and a Certificate instead of a Client ID and Client Secret. Following are the steps to use a Certificate in an Azure Web App:

    • Get or Create a Certificate
    • Associate the Certificate with an Azure AD application
    • Add code to your Web App to use the Certificate
    • Add a Certificate to your Web App


您还可以找到一种使用 env 变量来存储凭据的方法。仅当您可以保证无法在 prod 机器上对 env 变量进行快照时,这才可以。调查 Environment Variables Considered Harmful for Your Secrets更多细节。

最后一件事:还有一种基于该想法的技术,即您只需要存储/传递一个 ClientSecret 值,而 ClientId 应根据托管应用程序的机器/容器详细信息(例如 docker 容器 ID)构建.我找到了一个 Hashicorp Vault 的例子和一个托管在 AWS 上的应用程序,但总体思路是一样的: Secret management with Vault

关于.net-core - 存储 Azure Vault 客户端 ID 和客户端密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47245232/

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