2017-02-23 272 views
1

Я создаю веб-приложение в MVC C#, где вы можете войти в систему с помощью своей учетной записи AD и прочитать секреты. Проблема в том, что есть много хранилищ ключей - каждый с конкретными разрешениями. Мне удалось сделать это с одним конкретным хранилищем и перечислить секреты в хранилище, используя URL-адрес хранилища, используя логин AD.Список ключей, связанных с учетными записями пользователей AD?

Я хочу, чтобы иметь возможность перечислить хранилища, к которым пользователь имеет доступ. Я понимаю, что это очень легко сделать в Powershell, но я не могу понять, как это сделать на C#.

Есть ли способ сделать это? Благодаря!

+0

ну, вы можете напрямую вызвать конечные точки PowerShell или отдохнуть? – 4c74356b41

+0

Можете ли вы уточнить, что вы подразумеваете под «ассоциированным»? Вы имеете в виду учетную запись, которая создала хранилище, учетные записи, которые могут управлять хранилищем, учетные записи, которые имеют определенный доступ к учетной записи, или что-то еще? –

+0

Все участники. Поэтому, если пользователь может написать ему, прочитайте его, администратор - пока они смогут увидеть хранилище. Я не могу использовать powershell, поскольку это веб-приложение. Способ, которым я занимаюсь, - это использовать API остального, но он может отображать только хранилища, связанные с подписками. – Pikapops

ответ

1

Насколько я знаю, такого REST нет, мы можем получить все ключевые хранилища через различные подписки в настоящее время.

В качестве обходного пути нам необходимо указать Key Vault под всеми подписками и группой ресурсов. И проверьте accessPolicies, чтобы узнать, доступно ли хранилище ключей.

Например, accessPolicie понравилось ниже, мы можем проверить, соответствует ли объект пользователям objectId в accessPolicie.

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

Чтобы получить список ключей 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.

+0

Отличная идея! Я это сделаю. – Pikapops