Azure AD: назначьте AppRole нескольким пользователям - PullRequest
0 голосов
/ 06 марта 2019

Я создал новую пользовательскую AppRole в манифесте приложения и хочу назначить эту новую AppRole всем пользователям приложения.Я исследовал это и нашел несколько ссылок о том, как назначить новое AppRole пользователю, использующему Powershell или Bash, но мне нужно назначить новое AppRole всем пользователям (почти 1500 пользователей) с помощью сценария.Кто-нибудь имеет какие-либо идеи, как это сделать?

Ниже приведены несколько ссылок, которые я просмотрел, но он назначает роль одному пользователю:

https://docs.microsoft.com/en-us/powershell/module/azuread/new-azureaduserapproleassignment?view=azureadps-2.0

https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/assign-user-or-group-access-portal

1 Ответ

1 голос
/ 06 марта 2019

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

Вам могут помочь следующие опции:

  1. Назначить группу роли вместо отдельных пользователей

    Для этого требуется расширенная версия Azure AD. Это гораздо удобнее не только для первого задания, но и для общего управления.

  2. Параметры сценариев / API (PowerShell, интерфейс командной строки, API-интерфейс Azure AD Graph, API-интерфейс Microsoft Graph)

    Идея будет заключаться в том, чтобы пройти через всех пользователей (или желаемое подмножество пользователей на основе некоторых критериев) и назначить им соответствующую роль приложения.

    Вот пример сценария для PowerShell.

    Connect-AzureAD -TenantId <Your Tenant Id>
    
    $app_name = "RolesWebApp"
    $app_role_name = "Writer"
    
    # Get the service principal for the app and app role
    $sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
    $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name     }
    
    $users = Get-AzureADUser -Top 10
    
    foreach ($user in $users)
    {
         # Assign the user to the app role
         New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId             
         $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    }
    

Взгляните на эту ветку SO , где мы обсуждали нечто очень похожее, и в нем есть более подробная информация о каждом из отдельных вариантов.

Специальное примечание по Microsoft Graph API:

Хотя для большинства сценариев будет рекомендовано работать с Microsoft Graph API вместо Azure AD Graph API. Эта конкретная функциональность доступна только в бета-версии. Так что не рекомендуется использовать его для любого производственного кода. Работа с appRoleAssignments

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...