Кто-нибудь знает об инструменте, который может управлять ролями для пользователей Azure AD
AFAIK, для управления ролями приложений не существует какого-либо специального инструмента.
В целом вы должны иметь возможность использовать следующие параметры для добавления / редактирования / обновления параметров, связанных с ролями приложений и назначением разрешений для существующих пользователей AD:
ПРИМЕЧАНИЕ. Также следует знать, если вы имеете делопри большом количестве пользователей вы можете рассмотреть возможность назначения групп безопасности для ролей приложений вместо того, чтобы делать это для отдельных пользователей.Этот вариант стоит рассмотреть, хотя для этого требуется премиум-лицензия Azure AD.( Обновление - см. Также комментарий Филиппа Синьоре в конце этого ответа о назначении групп ролям приложений, делегировании управления назначенными группами и управлении группами самообслуживания )
Портал Azure путем редактирования манифеста приложения json (вы уже знаете об этом)
PowerShell -
Я добавилСценарий для этого в конце.Вы можете сделать это при создании нового приложения, используя New-AzureADApplication
или для существующего приложения, используя Set-AzureADApplication
.
. Для назначения этих ролей существующим пользователям вы можете использовать New-AzureADUserAppRoleAssignment
, как я показал ниже дляобновленный сценарий.
API-интерфейс Azure AD Graph -
Вы можете работать с типом AppRole и сущностью Application для самостоятельного управления ролями приложения. Документация здесь
Вы можете работать с AppRoleAssignment Entity для назначения этих ролей существующим пользователям Azure AD и т. Д. Документация здесь
Microsoft Graph API -
Документация здесь - Обратите внимание, это доступно тольков бета-версии - так что это еще не хорошо для производственных приложений.
Здесь можно найти , работающий с назначениями ролей приложений
Для ваших производственных приложений вы можете читать роли приложений из файла json (часть исходного кода)управляйте, как git и т. д.), и вставьте его в один из программных параметров, таких как PowerShell или Azure AD Graph API.
Вот сценарий PowerShell.Также взгляните на эти SO Post, где мы обсуждали нечто подобное, но только в рамках PowerShell.
SO Post 1
SO Post 2 (В этом вопросе обсуждается анализ файла json и обновление манифеста приложения с помощью PowerShell)
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