1:是否有人知道可以管理Azure AD中企业应用程序的Azure AD用户角色(清单中定义的appRoles)的角色分配工具?
我在谈论如何……
是否有人知道可以管理Azure AD用户角色的工具
AFAIK,没有任何特定工具可用于管理应用程序角色。
总的来说,您应该能够使用以下选项来添加/编辑/更新与应用程序角色相关的选项,并为现有AD用户分配权限:
注意:如果您正在处理大量用户,也可以考虑将安全组分配给应用程序角色,而不是为单个用户执行此操作。这是一个值得考虑的选择,虽然它需要Azure AD高级许可证。 ( 的 更新 强> - 另请参阅Philippe Signoret在本答案末尾的评论,其中包括将组分配到app角色,委派指定组的管理和 自助团体管理 )
Azure Portal通过编辑应用程序清单json(你已经知道了)
电源外壳 -
我最后为这个添加了一个脚本。您可以在使用时创建新应用程序时执行此操作 New-AzureADApplication 或者使用的现有应用程序 Set-AzureADApplication 。
New-AzureADApplication
Set-AzureADApplication
要将这些角色分配给现有用户,您可以使用 New-AzureADUserAppRoleAssignment 正如我在下面显示的更新脚本。
New-AzureADUserAppRoleAssignment
Azure AD Graph API -
您可以使用AppRole类型和应用程序实体来自行管理应用程序角色。 文档在这里
您可以使用AppRoleAssignment Entity将这些角色分配给现有Azure AD用户等。 文档在这里
Microsoft Graph API -
文档在这里 - 请注意,这仅适用于测试版 - 因此它对于生产应用程序来说还不是很好。
看这里 使用App角色分配
对于您的生产应用程序,您可以从json文件(git等源代码控制的一部分)中读取应用程序角色,并将其提供给PowerShell或Azure AD Graph API等编程选项之一。
这是PowerShell脚本。另外看看这些SO Post,我们讨论了类似的东西,但仅限于PowerShell的范围。
SO Post 1
SO Post 2 (这个问题讨论使用PowerShell解析json文件和更新应用程序清单)
Connect-AzureAD -TenantId <Tenant GUID> # Create an application role of given name and description Function CreateAppRole([string] $Name, [string] $Description) { $appRole = New-Object Microsoft.Open.AzureAD.Model.AppRole $appRole.AllowedMemberTypes = New-Object System.Collections.Generic.List[string] $appRole.AllowedMemberTypes.Add("User"); $appRole.DisplayName = $Name $appRole.Id = New-Guid $appRole.IsEnabled = $true $appRole.Description = $Description $appRole.Value = $Name; return $appRole } # ObjectId for application from App Registrations in your AzureAD $appObjectId = "<Your Application Object Id>" $app = Get-AzureADApplication -ObjectId $appObjectId $appRoles = $app.AppRoles Write-Host "App Roles before addition of new role.." Write-Host $appRoles $newRole = CreateAppRole -Name "MyNewApplicationRole" -Description "This is my new Application Role" $appRoles.Add($newRole) Set-AzureADApplication -ObjectId $app.ObjectId -AppRoles $appRoles
完成上述脚本以添加AppRole后,将角色分配给用户非常简单,并且可以使用直接命令。这是一个示例脚本 -
# Assign the values to the variables $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