我在MVC c#中创建一个Web应用程序,您可以使用您的AD帐户登录并阅读秘密。问题是有很多密钥保管库 - 每个都有特定的权限。我已设法使用一个特定的保险库执行此操作,并使用AD登录使用保险库URL列出保险库中的保密信息。
我希望能够列出用户也可以访问的保险库。我知道在Powershell中这很容易做,但是我无法在C#中找到如何做到这一点。
有办法做到这一点吗?谢谢!
答案 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提交。