Добавление участников в приложение Azure Enterprise через интерфейс командной строки
В нашем клиенте Azure AD есть корпоративное приложение для предоставления пользователям другой платформы SaaS. В настоящее время это только настройка с опцией "Синхронизировать только назначенных пользователей и группы", поскольку мы не хотим, чтобы весь каталог был перенесен.
Мой вопрос прост, есть ли способ использовать az-cli (в настоящее время установлена версия 2.0.60) для добавления пользователей в это корпоративное приложение?
Я проверил:
- az ad sp
- я объявление приложение
- назначение роли z (похоже, работает только с подписками и ресурсами ниже)
Я ожидаю, что будет запущена простая команда назначения ролей, которая добавит пользователя с помощью upn/objectId в приложение предприятия.
Все в моей команде используют Mac, и мы могли бы использовать PowerShellCore, если это имеет лучшую поддержку.
Спасибо!
1 ответ
Похоже, что вы не могли бы сделать это через Azure CLI, мой обходной путь - это использовать powershell для этого.
Все в моей команде используют Mac, и мы могли бы использовать PowerShellCore, если это имеет лучшую поддержку.
Во-первых, вам нужно установить AzureAD.Standard.Preview
Модуль PowerShell, который поддерживает ядро PowerShell, вы можете понять, что модуль является эквивалентом AzureAD
модуль в ядре powershell, они имеют одинаковое использование, это предварительная версия, более подробную информацию смотрите по этой ссылке.
Затем попробуйте команду New-AzureADUserAppRoleAssignment
как показано ниже, в этом примере пользователь назначается приложению с идентификатором роли приложения по умолчанию.
New-AzureADUserAppRoleAssignment -ObjectId "<user objectid>" -PrincipalId "<user objectid>" -ResourceId "<service principal objectid(i.e. Enterprise Application objectid)>" -Id ([Guid]::Empty)
Проверьте на портале:
Если вы хотите назначить пользователя определенной роли приложения в приложении, попробуйте команду ниже.
$username = "<You user's UPN>"
$app_name = "<Your App's display name>"
$app_role_name = "<App role display name>"
# Get the user to assign, and the service principal for the app to assign to
$user = Get-AzureADUser -ObjectId "$username"
$sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
$appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
#Assign the user to the app role
New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
Если это поможет, я сделал это с помощью "az rest". Мы все здесь используем Mac, и ядро PowerShell кажется сломанным в нескольких местах (не поддерживает вход на основе сертификатов, и командлет New-AzureADUserAppRoleAssignment для нас не работал. Мы использовали предварительную версию. Документы Graph API также совершенно неверны, поэтому потребовалось немного возиться, чтобы получить правильную конечную точку и полезную нагрузку. Пример ниже:
az rest --method post --uri https://graph.microsoft.com/beta/users/$user / appRoleAssignments --body "{\"appRoleId \ ": \"$appRoleId \ ", \" PrincipalId\": \"$user\",\"resourceId\": \"$spObjectId\"}" --headers "Content-Type=application/json"
Можно опубликовать образец сценария bash для вышеуказанного, который устанавливает вары, если кому-то интересно?