Доступ к Azure KeyVault из приложения в другом клиенте Azure ActiveDirectory

У меня есть подписка Azure, в которой есть все ресурсы для моего веб-приложения. Я создал еще одного клиента ActiveDirectory, определил приложение AD в клиенте и настроил его в качестве поставщика проверки подлинности для моего AppService. Теперь я хочу создать ресурс KeyVault в своей подписке и предоставить моему приложению AD доступ к KeyVault.

В документации по Azure KeyVault говорится, что нужно выполнить следующую команду PS:

Set-AzureRmKeyVaultAccessPolicy -VaultName <KVName> -ObjectId <ClientId> -PermissionsToKeys get

Однако это возвращает следующую ошибку:

Cannot find the Active Directory object '<ClientId>' in tenant '<MyDefaultTenantId>'

Проблема, похоже, в том, что мой KV не находится в том же клиенте AD, что и мое приложение AD, но команда Set-AzureRmKeyVaultAccessPolicy, похоже, не имеет аргумента TenatId.

Могу ли я как-нибудь достичь того, чего хочу? Нужно ли мне переместить мое приложение AD в клиент AD по умолчанию?


person Morteza    schedule 17.03.2017    source источник
comment
какую клиентуру вы здесь использовали? objectid должен быть идентификатором участника службы, соответствующим рекламному приложению в целевой подписке.   -  person sqlnewbie    schedule 21.03.2017


Ответы (3)


Нет. Хранилище ключей будет принимать идентификационные данные только от клиента, в котором оно находится.

person Sumedh Barde    schedule 17.03.2017
comment
tbh, это разочаровывает, так как я думал, что могу настроить разных клиентов AD в качестве поставщиков аутентификации для различных служб приложений в моей подписке; так что я могу разделить пользователей каждой службы приложений. - person Morteza; 17.03.2017
comment
у вас может быть несколько подписок для одного и того же клиента @Morteza - person 4c74356b41; 17.03.2017

Конечно, вы можете сделать свое приложение мультитенантным , разрешите приложение в каталог Azure AD в подписке, содержащей хранилище ключей, а затем добавьте приложение в качестве участника с разрешениями на доступ к хранилищу ключей на портале.

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

person MvdD    schedule 19.03.2017
comment
Не могли бы вы сообщить мне, как я могу выполнить процесс согласия для моего приложения AD, определенного в каталоге X, в каталог Y? - person Morteza; 20.03.2017
comment
Взгляните на этот пример от Microsoft: github.com/Azure -Samples / - person MvdD; 20.03.2017

У меня была такая же ситуация и требование (никогда не вернусь эти 8 часов :-), но вы можете легко дать это согласие, вызвав определенный URL-адрес и продолжив предоставление идентификатору приложения необходимых разрешений в хранилище ключей.

Суммируя...

GET https://login.microsoftonline.com/{tenant}/adminconsent?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&state=12345
&redirect_uri=http://localhost/myapp/permissions

Всегда запускайте в частном окне браузера, чтобы не запутаться в разных личностях в течение рабочего времени вашего браузера.

Подробнее читайте здесь: https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-scopes#using-the-admin-consent-endpoint

person Lasse Knudsen    schedule 17.05.2018