【问题标题】:How to secure Azure client Id and Secret without using App Settings of App Service如何在不使用应用服务的应用设置的情况下保护 Azure 客户端 ID 和机密
【发布时间】:2017-12-02 23:24:37
【问题描述】:

我正在使用 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 和客户端机密免受黑客攻击

【问题讨论】:

    标签: security azure-active-directory azure-keyvault database-security clientid


    【解决方案1】:

    如果在 Azure 应用服务或 Azure VM 上部署服务,则可以启用托管服务标识 (MSI) 并将 Azure 应用服务的服务主体添加到 Azure Key Vault。 MSI 允许在关联的 Azure 服务本身上生成服务主体。这意味着您不再需要存储客户端 ID 和客户端密码。 Azure AD 直接与你的 Azure 应用服务一起工作。

    这里是Azure MSIhttps://docs.microsoft.com/en-us/azure/active-directory/managed-service-identity/overview的介绍

    另一种使用客户端 ID 和客户端密码的方法是通过证书获取访问令牌。只需将您的证书上传到 Azure Web App 证书存储并调用证书以获取指纹即可完成。可以参考这篇文章https://docs.microsoft.com/en-us/azure/key-vault/key-vault-use-from-web-application

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-18
        相关资源
        最近更新 更多