如何在不使用应用服务的应用程序设置的情况下保护Azure客户端ID和密码

8

我正在使用Azure KeyVault来存储我的数据库凭据,现在我需要在服务代码中访问它,但我已经把客户端ID和客户端密钥硬编码进去了。

如何避免这种不安全的硬编码呢?

1) I don't want to store client id and client secret in certificates, as 
deployed certificates are again insecure
2) My app is not hosted on Azure App service, so I can't use App Settings to 
store client id and client secret.

有没有办法让Azure Active Directory仅在从我的应用程序URL发出请求时返回访问令牌? 否则,如何保护客户端ID和客户端密钥免受黑客攻击?

2个回答

3
如果您将服务部署在 Azure App Service 或 Azure VM 上,可以启用托管服务标识 (MSI),并将 Azure 应用服务的服务主体添加到 Azure Key Vault。MSI 允许在关联的 Azure 服务上生成服务主体。这意味着您不再需要存储客户端 ID 和客户端密码。Azure AD 直接与您的 Azure 应用服务配合使用。
这里是 Azure MSI 的介绍 https://learn.microsoft.com/en-us/azure/active-directory/managed-service-identity/overview 另一种使用客户端 ID 和客户端密码的方法是通过证书获取访问令牌。只需将证书上传到 Azure Web 应用程序证书存储区,并调用证书来获取指纹即可完成。您可以参考此文章 https://learn.microsoft.com/en-us/azure/key-vault/key-vault-use-from-web-application

2

使用客户端ID和客户端密钥来保护Key Vault只意味着您现在有一个新的秘密需要尝试某种方式来保护。更好的方法是使用证书来访问密钥保管库。这样,您将获得额外的安全性,因为您需要证书的私钥才能将其安装到应用程序中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接