如何验证用户是否具有来自 keyvault 的访问机密?

How to validate user has access secrets from keyvault?

我指的是这个 tutorial,它为所有用户的应用程序从 Azure Key Vault 中获取秘密(因为访问策略是针对应用程序级别提供的)。是否有任何方法可以为在访问策略中具有权限(即用户服务主体级别)的特定用户从密钥库中获取机密,如下面的屏幕截图所示

有什么方法可以为特定用户检索密钥,而不是为所有用户检索密钥?

提前致谢。

我做了一些测试,我不确定它是否是最好的解决方案。

首先,我创建了一个用于使用 api 访问密钥保管库的 azure 广告应用程序。所以我给这个应用添加了 key-vault-user_impersonation api 权限。然后在密钥保管库访问策略选项卡中,我添加了应用程序和我的用户帐户。

然后借助 azure ad ropc 流程,我获得了用于调用密钥保管库的访问令牌 api。终于可以拿到秘值了

并且当我使用另一个未在访问策略中添加的帐户来获取访问令牌时,我无法获得正确的响应。在收到禁止消息后,我还尝试将此帐户添加到密钥保管库访问策略中,终于成功了。所以在我的场景中,只需在访问策略中添加 azure ad 应用程序和特定用户。

顺便说一句,如果您认为在密钥保管库访问策略中添加许多用户帐户不方便,您可以添加一个包含访问密钥保管库所需的所有用户的组。只需在 Azure 广告中创建一个组 (i.e.named 'permission2xxxkeyvault') 并将其设置在访问策略选项卡中。我试过了,也很​​有效。