使用证书授予应用程序对 Azure Key Vault 的访问权限

Using a certificate to grant an application access to Azure Key Vault

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

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

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

编辑 - 集成助手截图:

Can this alert be safely ignored?

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

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

Or is there a better way to grant my application vault access?

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

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

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