尝试了解为什么使用证书访问 Azure 应用程序比使用秘密更安全

问题描述 投票:0回答:1

我有一个未托管在 Azure 中的桌面应用程序。该应用程序使用一些第三方 api,我们使用 Key Vault 来存储这些 api 凭据。我们的应用程序也在 Azure 中注册并可以访问保管库。

据我了解,证书流程将包括在用户计算机上安装应用程序时安装的证书。既然现在已经安装了证书,那么用户(客户端)是否具有对保管库的完全访问权限?即使在应用程序之外?

与使用秘密身份验证相比,用户需要密钥才能访问保管库。秘密将存储在一个已编译的配置文件中,并且只能从应用程序内部访问。这对我来说似乎更安全。

我在这里遗漏了什么吗?

c# azure ssl-certificate certificate azure-keyvault
1个回答
0
投票

您的应用程序存在根本性的安全问题。

无论您采用哪种方法,API 凭据都会通过客户端。 您应该假设它们对用户可见。

您无法作为应用程序安全地向 Key Vault 进行身份验证,因为该应用程序未在安全的环境中运行。 更安全的方式是委托访问;代表当前用户调用 Key Vault API。 这需要用户进行身份验证并且 Key Vault 授权用户。

您可以通过添加应用程序调用的您自己的 API(而不是直接调用其他 API)来稍微改善这种情况。 当然,您仍然需要对该 API 进行身份验证,为此我建议您对用户进行身份验证。

© www.soinside.com 2019 - 2024. All rights reserved.