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

时间:2017-02-23 10:57:32

标签: asp.net-mvc azure active-directory azure-keyvault

我在MVC c#中创建一个Web应用程序,您可以使用您的AD帐户登录并阅读秘密。问题是有很多密钥保管库 - 每个都有特定的权限。我已设法使用一个特定的保险库执行此操作,并使用AD登录使用保险库URL列出保险库中的保密信息。

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

有办法做到这一点吗?谢谢!

1 个答案:

答案 0 :(得分:1)

据我所知,目前还没有这样的REST,我们可以通过不同的订阅获得所有关键保险库。

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

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

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

要列出所有订阅和资源组下的密钥保管库,您可以参考以下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提交。