Добавление участников в приложение 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 для вышеуказанного, который устанавливает вары, если кому-то интересно?

Другие вопросы по тегам