У моего клиента есть AzureAD Premium, поэтому мы можем назначать группы ролям
Мы можем создавать сценарии для создания новых групп (в их локальной AD) и добавлять пользователей в эти группы, а также синхронизировать группы с AAD
Мы можем управлять файлом манифеста с помощью сценария.
Но я не придумал, как автоматически назначить группу для роли приложения. Кто-то должен зайти на портал Azure ›каталог› приложения ›наше приложение› Пользователи и группы ›найти группы для назначения› назначить ›найти подходящую роль ... (промыть и повторить).
Приложение по сути является точкой доступа (внешней по отношению к Azure - мы просто объединяем локальную AD в AAD для A&A в приложение), и группы соответствуют ролям, которые ограничивают доступ к различным библиотекам. К сожалению, бизнес-модель моего клиента весьма разнообразна, а это означает, что у нас есть много групп, которым нужно сопоставить множество ролей.
PowerShell - это наш предпочтительный язык администрирования сценариев.
Я добился небольшого прогресса с Get-AzureAdGroup -SearchString "groupname"
, что дает мне objectId
. Я могу передать это Get-AzureAdGroupAppRoleAssignment
, и это даст мне id
, который соответствует GUID из файла манифеста. Таким образом, все это связано вместе, за исключением фактического присвоения группе роли.
Итак, затем я начал изучать GraphAPI на основе этот блог. (Блог был посвящен массовому добавлению пользователей к одной конкретной роли, когда у вас нет AAD Premium).
Мне удалось добиться небольшого успеха с GET https://graph.windows.net/[tenant].onmicrosoft.com/servicePrincipals/[app id]/appRoleAssignments?api-version=1.6
, но некоторые из моих тестовых групп, даже если они отображаются на портале Azure как назначенные, не отображаются в ответе на указанный выше запрос REST. Некоторые делают, и когда я отменяю их назначение через портал, они также удаляются из ответа. Отсутствие последовательности не дает мне уверенности в моем вопросе.
Существуют ли собственные командлеты PowerShell для выполнения AppRoleAssignments? (я бы предпочел GraphAPI).
Почему непоследовательные результаты GraphAPI?
Заранее благодарим за любые указатели
Обновление
Я исследую *-AzureAd*
командлеты (из модуля AzureADPreview
), но Документация Microsoft немного проста - это только предварительный просмотр, но я думаю, что у них могла бы быть лучшая документация, чем:
Входные данные
Тип входных данных - это тип объектов, которые можно передать командлету по конвейеру.Выводы
Тип вывода - это тип объектов, генерируемых командлетом.
Эти командлеты делают, похоже, завершают вызовы GraphAPI REST.
Обновление 2
Командлеты AzureADPreview
- правильное решение.
Connect-AzureAD -TenantId xxxxx-xxxx-xxxx-etc
$app = Get-AzureADServicePrincipal -SearchString "display name of app"
foreach ($AD_group_name in $list_of_names_to_map) {
$AADGroup = Get-AzureADGroup -SearchString $AD_group_name
$AppRole = $App.AppRoles | ?{$_.value -like $AADGroup.DisplayName}
$NewAssignmentParams = @{
'id' = $AppRole.Id;
'objectid' = $AADGroup.ObjectId;
'PrincipalId' = $AADGroup.ObjectId;
'ResourceId' = $App.ObjectId;
}
New-AzureADGroupAppRoleAssignment @NewAssignmentParams
}