2016-10-06 6 views
4

Я пытаюсь создать секрет Azure KeyVault программно с помощью Microsoft. Azure.KeyVault.KeyVaultClient. Для моих целей я получаю аутентификацию аутентификатора аутентификации с сертификатом в качестве приложения Azure AD. Приложение Azure AD уже имеет информацию о сертификате в своем манифесте.Как исправить ошибку «Операция» «не разрешена» при создании секретного ключа Azure KeyVault?

Мой код создает Azure KeyVault, предоставляя «все» разрешения как для секретов, так и для ключей к ID объекта приложения Azure AD. Я проверяю, что это произошло с помощью Powershell для извлечения KeyVault и просмотра политик доступа.

Когда я пытаюсь создать секрет в этом KeyVault с помощью KeyVaultClient.SetSecretAsync(), я получаю исключение, говорящее, что «Операция« set »не допускается». с кодом состояния «Запрещено».

За пределами разрешений, установленных в KeyVault, необходимо ли обеспечить любые другие разрешения для чего-либо еще (например, приложения Azure AD)?

+0

достаточно смешной, я столкнулся с таким же вопросом сегодня, с Azure нетривиальными, несмотря на то, что я настроил разрешение на Заявку не будет препятствовать мне сделать что-нибудь с Key Vault, будучи аутентифицированным как приложение Azure AD, интересно, возможно ли это (я работал с аутентификацией как пользователь Azure AD, но это довольно хромой). – 4c74356b41

+0

Я думаю, что проблема связана со мной, используя идентификатор объекта приложения Azure AD. Я _think_ в Политике доступа требуется идентификатор объекта приложения Azure AD * *. Тестирование сейчас. – SAGExSDX

+0

Думаю, я пробовал это, это сработало для вас? – 4c74356b41

ответ

5

Проблема заключается в том, что для политики доступа не требуется идентификатор объекта вашего приложения Azure AD. Он на самом деле хочет идентификатор объекта сервис-провайдера приложения Azure AD.

Из-за недавнего добавления «регистрации приложений» на портале portal.azure.com мы можем получить идентификатор объекта приложения тривиально. Однако идентификатор объекта принципала службы приложения Azure AD недоступен через пользовательский интерфейс (насколько я могу найти). Вы можете получить его с помощью Powershell:

Get-AzureRmADServicePrincipal -ServicePrincipalName <app client ID>