我有一个通过 IIS 托管在 Windows 服务器上的 Web API。我正在使用 Azure Key Vault 来隐藏 secret 。为了让应用程序能够访问保管库,我使用了服务器上安装的证书,该证书也在 Azure 中的应用程序中注册。 证书指纹、租户 ID 和应用程序 ID 均在 Web API 的配置文件中公开。应用程序注册通过 key 保管库中的策略授予访问权限。
问题是 Azure 中的集成助手警告我,我不应该在注册中设置证书,但没有解释原因(文档显示为灰色以进行警告)。
可以安全地忽略此警报吗?或者有更好的方法来授予我的应用程序库访问权限吗?
编辑 - 集成助手的片段:
最佳答案
Can this alert be safely ignored?
在你的特定场景中,我会说是的。您可以安全地忽略此消息。
本质上,您需要一个用户来访问 key 保管库。考虑到您的应用程序在本地运行,您将使用服务主体
(作为应用注册的一部分创建)作为用户来访问 key 保管库。
Or is there a better way to grant my application vault access?
在您的特定场景中(当您的应用程序在本地运行时),据我所知没有。
如果您的应用程序在 Azure 中运行,您可以使用托管身份
。它可以是系统分配的托管身份
或用户分配的托管身份
。使用托管身份,您不需要基于 secret /证书的身份验证。
我不确定您的 API 是否受 Azure AD 保护(即用户在使用 API 之前必须经过身份验证/授权),但如果确实如此,则另一种选择是授予 API 用户对 Key Vault 的访问权限。然后,将在该用户的上下文中发送对 Key Vault 的请求。然而,这将大大增加管理复杂性,因为您必须管理所有 API 用户的访问控制。
关于azure - 使用证书授予应用程序对 Azure Key Vault 的访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68272694/