2017-02-23 59 views
1

我在MVC c#中創建一個Web應用程序,您可以使用您的AD帳戶登錄並閱讀祕密。問題是有很多鑰匙蓋 - 每個都有特定的權限。我已經設法使用一個特定的保險櫃執行此操作,並使用AD登錄名使用保險庫URL列出保管庫中的機密。列出與AD用戶帳戶關聯的關鍵電子倉庫?

我希望能夠列出用戶也可以訪問的保險庫。我知道這在Powershell中很容易實現,但我無法知道如何在C#中執行此操作。

有沒有辦法做到這一點?謝謝!

+0

好吧,你可以直接調用powershell或休息端點? – 4c74356b41

+0

你能澄清你的意思是'關聯'嗎?您是指創建保險櫃的帳戶,可以管理保險櫃的帳戶,具有某些特定帳戶訪問權限的帳戶或其他內容? –

+0

所有成員。所以如果用戶可以寫信給它,閱讀它,管理它 - 只要他們能看到保險庫。我不能使用PowerShell,因爲它是一個Web應用程序。我正在研究的方式是通過其餘API,但它只能顯示與訂閱相關的保管庫。 – Pikapops

回答

1

據我所知,目前還沒有這樣的REST,我們可以通過不同的訂閱獲得所有關鍵保險庫。

作爲一種解決方法,我們需要在所有訂閱和資源組下列出Key Vault。並檢查accessPolicies以查看Key Vault是否可訪問。

例如,一個accessPolicie如下所示,我們可以檢查用戶的對象是否匹配accessPolicie中的objectId

{ 
    "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提交。

+0

好主意!我會去做。 – Pikapops

相關問題