【问题标题】:Using a certificate to grant an application access to Azure Key Vault使用证书授予应用程序对 Azure Key Vault 的访问权限
【发布时间】:2021-09-17 05:05:47
【问题描述】:

我有一个通过 IIS 托管在 Windows 服务器上的 Web API。我正在使用 Azure Key Vault 来隐藏机密。为了让应用程序访问保管库,我使用了安装在服务器上的证书,该证书也在 Azure 中的应用程序中注册。 证书指纹、租户 ID 和应用程序 ID 都暴露在 Web API 的配置文件中。应用注册通过密钥保管库中的策略授予访问权限。

问题是 Azure 中的集成助手提醒我,我不应该在注册中设置证书,但没有解释原因(文档显示为灰色以显示警报)。

可以安全地忽略此警报吗?或者有没有更好的方法来授予我的应用程序保管库访问权限?

编辑 - 集成助手的片段:

【问题讨论】:

  • 您能否编辑您的问题并附上您收到的警报的屏幕截图?
  • @GauravMantri 完成。
  • 谢谢。还有一个问题——你的虚拟机在哪里运行?是本地的还是 Azure 中的?
  • 这是本地的。我不知道它是否是虚拟机——我只知道它存在于本地服务器上,并且我可以远程访问它来配置 IIS。

标签: azure api iis certificate


【解决方案1】:

可以安全地忽略此警报吗?

在您的特定情况下,我会说是的。您可以放心地忽略此消息。

基本上您需要一个用户来访问密钥保管库。考虑到您的应用程序在本地运行,您将使用Service Principal(作为应用程序注册的一部分创建)作为用户来访问密钥保管库。

或者有没有更好的方法来授予我的应用程序保管库访问权限?

在您的特定场景中(当您的应用程序在本地运行时),AFAIK 没有。

如果您的应用程序在 Azure 中运行,您可以使用 Managed Identity。它可以是System-assigned Managed IdentityUser-assigned Managed Identity。使用托管身份,您不需要基于密钥/证书的身份验证。

我不确定您的 API 是否受 Azure AD 保护(即用户必须在使用 API 之前进行身份验证/授权),但如果确实如此,那么另一种方法是授予 API 用户访问 Key Vault 的权限。然后将在该用户的上下文中发送对 Key Vault 的请求。但是,这将大大增加管理复杂性,因为您必须管理所有 API 用户的访问控制。

【讨论】:

  • 谢谢。是的,我的意思是,我的应用程序不仅最终会有一个 UI 前端,而且为了自动化目的,分离的守护程序应用程序也可以访问它,从而进一步增加了复杂性。我认为目前我已经实施了最好的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
相关资源
最近更新 更多