#azure #azure-active-directory
Вопрос:
Есть ли способ передать все назначения ролей всех участников службы в мое приложение для регистрации приложений? Я получаю только те, которые от моего домашнего арендатора.
Объяснение:
- У меня 2 жильца: А, Б.
- Мое приложение для регистрации приложений находится в клиенте A.
- В клиенте A есть регистрации приложений, которым назначены роли для моего приложения для регистрации приложений. Но в клиенте A также есть руководители служб, которые представляют регистрацию приложений в клиенте B, которым назначены роли для моего приложения.
Когда я Connect-AzureAD
сниму квартиру А и побегу:
$myAppServicePrincipal = Get-AzureADServicePrincipal -Filter "AppId eq '$myAppRegisterationAppId'"
Get-AzureADServiceAppRoleAssignment -ObjectId $myAppServicePrincipal.ObjectId
Я получаю только участников службы регистрации приложений в своем домашнем арендаторе — А. Я не вижу никаких руководителей служб, представляющих другие приложения для регистрации приложений в других арендаторах.
(Я также попытался запустить эту команду в арендаторе B, но она не находит там мое приложение для регистрации приложений, что совершенно очевидно)
Комментарии:
1. Вероятно, это связано с тем, что
ObjectId
регистрация приложения отличается от регистрации субъекта-службы. Что у них должно быть общего, так это идентификатор приложения. Не могли бы вы, пожалуйста, проверить значения?2. на самом деле в
$myRegisterationAppObjectId
нем содержится идентификатор объекта участника службы, представляющего мое приложение aad. Позвольте мне дополнить мой вопрос дополнительным кодом, чтобы точно отразить то, что я делаю.3.
Get-AzureADServicePrincipal
возвращает объект типа Service Principal, который обладает свойствомObjectId
. Разве ваш код не должен быть такимGet-AzureADServiceAppRoleAssignment -ObjectId $myAppServicePrincipalObjectId.ObjectId
?4. да, извините, что я просто неправильно набрал все свои команды. Отредактированный ответ.
Ответ №1:
Я провел тестирование в своей среде.
Идентификатор объекта участника-службы меняется от одного арендатора к другому арендатору.
(Get-AzureADServicePrincipal -Фильтр «AppID eq ‘$myAppRegisterationAppId'»). objectid возвращает идентификатор объекта участника службы в клиенте A.
Таким образом, Get-AzureADServiceAppRoleAssignment-ObjectId $myAppServicePrincipal.ObjectId возвращает только назначения ролей SP в клиенте A.
Если мы подключимся к клиенту A и запустим приведенный ниже сценарий, он вернет назначения ролей SP в клиенте A.
$myAppServicePrincipal = Get-AzureADServicePrincipal -Filter "AppId eq '$myAppRegisterationAppId'"
Get-AzureADServiceAppRoleAssignment -ObjectId $myAppServicePrincipal.ObjectId
Аналогично, если мы подключимся к клиенту B и запустим тот же сценарий, он вернет назначения ролей SP в клиенте B.
Комментарии:
1. Я знаю это, но это все еще не отвечает на мой вопрос о том, как это сделать
2. Используя Get-AzureADServiceAppRoleAssignment, мы получим только назначения ролей SP в самом клиенте A. Аналогичным образом, мы можем подключиться к арендатору B и использовать тот же сценарий, упомянутый в вопросе, для возврата назначений ролей SP в арендаторе B