Azure AD:将AppRole分配给多个用户

时间:2019-03-06 17:00:53

标签: azure azure-active-directory

我在App Manifest中创建了一个新的自定义AppRole,我想将此新AppRole分配给该应用程序的所有用户。我对此进行了研究,并找到了几个有关如何使用Powershell或Bash向用户分配新AppRole的链接,但是我需要使用脚本向所有用户(近1500个用户)分配新AppRole。有谁知道如何做到这一点?

下面是我研究过的几个链接,但它为单个用户分配了角色:

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 个答案:

答案 0 :(得分:1)

您已经查看了Azure门户和可用的UI,它不适用于批量操作(一次只能分配一个角色,必须一个一个地选择用户,这是没有办法的)根据某些条件等批量选择用户。)

以下选项可能会帮助您:

  1. 将组分配给角色,而不是单个用户

    这需要Azure AD的高级版本。这不仅方便了第一次任务,而且便于整体管理。

  2. 脚本/ API选项(PowerShell,CLI,Azure AD Graph API,Microsoft Graph API)

    想法将是遍历所有用户(或基于某些条件的所需用户子集),并为他们分配适当的应用程序角色。

    这是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
    }
    

看看Example image,我们讨论了一些非常相似的内容,并详细介绍了各个选项。

关于Microsoft Graph API的特殊说明:

即使在大多数情况下,仍建议使用Microsoft Graph API而不是Azure AD Graph API。此特定功能仅在beta端点中可用。因此,不建议将其用于任何生产代码。 this SO thread