我在App Manifest中创建了一个新的自定义AppRole,我想将此新AppRole分配给该应用程序的所有用户。我对此进行了研究,并找到了几个有关如何使用Powershell或Bash向用户分配新AppRole的链接,但是我需要使用脚本向所有用户(近1500个用户)分配新AppRole。有谁知道如何做到这一点?
下面是我研究过的几个链接,但它为单个用户分配了角色:
答案 0 :(得分:1)
您已经查看了Azure门户和可用的UI,它不适用于批量操作(一次只能分配一个角色,必须一个一个地选择用户,这是没有办法的)根据某些条件等批量选择用户。)
以下选项可能会帮助您:
将组分配给角色,而不是单个用户
这需要Azure AD的高级版本。这不仅方便了第一次任务,而且便于整体管理。
脚本/ 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