列出与 AD 用户帐户关联的密钥保管库?

List key vaults associated with AD user accounts?

我正在 MVC c# 中创建一个 Web 应用程序,您可以在其中使用您的 AD 帐户登录并读取机密。问题是有很多 Key Vault——每个都有特定的权限。我已经设法用一个特定的保险库做到这一点,并使用 AD 登录名使用保险库 URL 列出保险库中的秘密。

我也希望能够列出用户有权访问的保管库。我知道这在 Powershell 中很容易做到,但我无法找到如何在 C# 中做到这一点。

有办法吗?谢谢!

据我所知,目前还没有这样的 REST,我们可以跨不同的订阅获取所有密钥保管库。

作为解决方法,我们需要在所有订阅和资源组下列出 Key Vault。并检查 accessPolicies 以查看 Key Vault 是否可访问。

例如下面的accessPolicie赞,我们可以检查用户的对象是否匹配accessPolicie中的objectId

  {
    "tenantId": "",
    "objectId": "",
    "permissions": {
      "keys": [],
      "secrets": [
        "Get"
      ],
      "certificates": []
    }
  },

要在所有订阅和资源组下列出 Key Vault,您可以参考下面的 REST:

GET: https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.KeyVault/vaults?api-version=2015-06-01    

authorization: bearer {access_token}

如果您对 Azure 有任何想法或反馈,可以从 here 提交。