Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как назначить пользователей и группы корпоративному приложению в идентификаторе Microsoft Entra. При назначении пользователя приложению приложение отображается на портале "Мои приложения " пользователя для простого доступа. Если приложение предоставляет роли приложений, можно также назначить пользователю определенную роль.
Когда вы назначаете группу приложению, доступ к нему получают только пользователи из этой группы. Назначение не каскадно для вложенных групп.
Для назначения, основанного на группах, требуется выпуск Microsoft Entra ID P1 или P2. Членство в вложенных группах в настоящее время не поддерживается. Дополнительные требования к лицензированию функций, рассмотренных в этой статье, см. на странице ценообразования Microsoft Entra.
Для более полного контроля можно настроить определенные типы корпоративных приложений так, чтобы они требовали назначения пользователей. Дополнительные сведения о необходимости назначения пользователей для приложения см. в разделе "Управление доступом к приложению". Приложения, которым необходимо назначение пользователей, должны получать согласие администратора на свои разрешения, даже если политики пользователя в вашем каталоге позволяют пользователям самостоятельно давать согласие.
Примечание.
Если при управлении группами на портале возникают ограничения, например с группами политик доступа к приложениям, рекомендуется использовать альтернативные методы, такие как PowerShell или API Microsoft Graph.
Предварительные условия
Чтобы назначить пользователей корпоративному приложению, вам потребуется:
- Учетная запись Microsoft Entra с активной подпиской. Если у вас еще нет учетной записи, вы можете бесплатно создать учетную запись.
- Одна из следующих ролей:
- Администратор облачных приложений
- Администратор приложений
- Администратор пользователей
- Владелец субъекта-службы.
- Microsoft Entra ID P1 или P2 для назначения по группам. Дополнительные требования к лицензированию функций, рассмотренных в этой статье, см. на странице ценообразования Microsoft Entra.
Назначение пользователей и групп приложению с помощью Центра администрирования Microsoft Entra
Чтобы добавить учетную запись пользователя или группы корпоративному приложению:
Войдите в Центр администрирования Microsoft Entra как минимум администратор облачных приложений.
Перейдите к Entra ID>Enterprise-приложениям>Все приложения.
Введите имя существующего приложения в поле поиска и выберите приложение из результатов поиска.
Выберите "Пользователи и группы", а затем нажмите кнопку "Добавить пользователя или группу".
На панели "Добавить назначение" выберите "Никто не выбран " в разделе "Пользователи и группы".
Найдите и выберите пользователя или группу, которую вы хотите назначить приложению. Например,
contosouser1@contoso.com
илиcontosoteam1@contoso.com
.Нажмите кнопку "Выбрать".
В разделе "Выбор роли" выберите роль, которую вы хотите назначить пользователю или группе. Если вы еще не определили какие-либо роли, роль по умолчанию — это Default Access.
На панели "Добавление задачи" выберите "Назначить", чтобы назначить этого пользователя или группу приложению.
Удалите назначение пользователей и групп из приложения.
- Выполните действия, описанные в разделе "Назначение пользователей и групп", чтобы перейти к области "Пользователи и группы ".
- Найдите и выберите пользователя или группу, которую вы хотите отменить назначение из приложения.
- Выберите "Удалить ", чтобы отменить назначение пользователя или группы из приложения.
Назначение пользователей и групп приложению с помощью Microsoft Entra PowerShell
Войдите по крайней мере как администратор облачных приложений.
Используйте следующий скрипт, чтобы назначить пользователя приложению:
connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" # Assign the values to the variables $username = "<Your 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-EntraUser -ObjectId "$username" $sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'" $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name } # Assign the user to the app role New-EntraUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
Пример
В этом примере пользователь Britta Simon назначается в качестве пользователя приложения Microsoft Workplace Analytics с помощью PowerShell.
В PowerShell назначьте соответствующие значения переменным
$username
и$app_name
$app_role_name
.connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" $username = "britta.simon@contoso.com" $app_name = "Workplace Analytics"
В этом примере неизвестно, как именно называется роль приложения, которую мы хотим назначить пользователю Britta Simon. Выполните следующие команды, чтобы получить пользователя (
$user
) и учетную запись службы ($sp
) с помощью UPN пользователя и отображаемого имени учетной записи службы.$user = Get-EntraUser -ObjectId "$username" $sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
Выполните следующую команду, чтобы найти роли приложения, предоставляемые субъектом-службой.
$appRoles = $sp.AppRoles # Display the app roles $appRoles | ForEach-Object { Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)" }
Примечание.
Идентификатор AppRole по умолчанию —
00000000-0000-0000-0000-000000000000
. Эта роль назначается, если для сервисного принципала не определена конкретная роль AppRole.Назначьте имя AppRole переменной
$app_role_name
. В этом примере мы хотим назначить пользователю Britta Simon роль Analyst (Limited Access) (аналитик с ограниченным доступом).$app_role_name = "Analyst (Limited access)" $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
Выполните следующую команду, чтобы назначить пользователя роли в приложении.
New-EntraUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
Чтобы назначить группу корпоративному приложению, замените Get-EntraUser
на Get-EntraGroup
, а также замените New-EntraUserAppRoleAssignment
на New-EntraGroupAppRoleAssignment
.
Дополнительные сведения о том, как назначить группу на роль приложения, см. в документации по New-EntraGroupAppRoleAssignment.
Отмена назначения пользователей и групп из приложения с помощью Microsoft Entra PowerShell
Откройте командную строку Windows PowerShell с повышенными привилегиями.
Войдите по крайней мере как администратор облачных приложений.
Используйте следующий скрипт, чтобы удалить пользователя и роль из приложения.
connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" # Store the proper parameters $user = Get-Entrauser -ObjectId "<objectId>" $spo = Get-EntraServicePrincipal -ObjectId "<objectId>" #Get the ID of role assignment $assignments = Get-EntraServicePrincipalAppRoleAssignedTo -ObjectId $spo.ObjectId | Where {$_.PrincipalDisplayName -eq $user.DisplayName} #if you run the following, it will show you what is assigned what $assignments | Select * #To remove the App role assignment run the following command. Remove-EntraServicePrincipalAppRoleAssignment -ObjectId $spo.ObjectId -AppRoleAssignmentId $assignments.ObjectId
Удаление всех пользователей, назначенных приложению с помощью Microsoft Entra PowerShell
- Откройте командную строку Windows PowerShell с повышенными привилегиями.
Используйте следующий сценарий, чтобы удалить всех пользователей и групп, назначенных приложению.
connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
#Retrieve the service principal object ID.
$app_name = "<Your App's display name>"
$sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
# Get Microsoft Entra App role assignments using objectId of the Service Principal
$assignments = Get-EntraServicePrincipalAppRoleAssignedTo -ObjectId $sp.ObjectId -All
# Remove all users and groups assigned to the application
$assignments | ForEach-Object {
if ($_.PrincipalType -eq "User") {
Remove-EntraUserAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
} elseif ($_.PrincipalType -eq "Group") {
Remove-EntraGroupAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
}
}
Назначение пользователей и групп приложению с помощью Microsoft Graph PowerShell
Откройте командную строку Windows PowerShell с повышенными привилегиями.
Запустите
Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
и войдите в систему в роли по крайней мере администратора облачных приложений.Используйте следующий скрипт, чтобы назначить пользователя приложению:
#Assign the values to the variables $userId = "<Your user's ID>" $app_name = "<Your App's display name>" $app_role_name = "<App role display name>" $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'" #Get the user, the service principal and appRole. $params = @{ "PrincipalId" =$userId "ResourceId" =$sp.Id "AppRoleId" =($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id } #Assign the user to the AppRole New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params | Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName, PrincipalId, PrincipalType, ResourceDisplayName, ResourceId
Пример
В этом примере пользователь Britta Simon назначается приложению Microsoft Workplace Analytics с помощью Microsoft Graph PowerShell.
В PowerShell назначьте соответствующие значения переменным
$userId
и$app_name
$app_role_name
.# Assign the values to the variables $userId = "<Britta Simon's user ID>" $app_name = "Workplace Analytics"
В этом примере мы не знаем точное имя роли приложения, которую мы хотим назначить пользователю Britta Simon. Выполните следующую команду, чтобы получить субъект-службу ($sp), используя отображаемое имя субъекта-службы.
# Get the service principal for the app $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"
Запустите следующую команду, чтобы найти роли приложения, открытые принципалом службы.
# Get the app roles exposed by the service principal $appRoles = $sp.AppRoles # Display the app roles $appRoles | ForEach-Object { Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)" }
Примечание.
Идентификатор AppRole по умолчанию —
00000000-0000-0000-0000-000000000000
. Эта роль назначается, если для сервисного принципала не определена конкретная роль AppRole.Присвойте имя роли переменной
$app_role_name
. В этом примере мы хотим назначить пользователю Britta Simon роль Analyst (Limited Access) (аналитик с ограниченным доступом).# Assign the values to the variables $app_role_name = "Analyst (Limited access)" $appRoleId = ($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id
Подготовьте параметры и выполните следующую команду, чтобы назначить пользователя в роли приложения.
# Prepare parameters for the role assignment $params = @{ "PrincipalId" = $userId "ResourceId" = $sp.Id "AppRoleId" = $appRoleId } # Assign the user to the app role New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params | Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName, PrincipalId, PrincipalType, ResourceDisplayName, ResourceId
Чтобы назначить группу корпоративному приложению, замените Get-MgUser
на Get-MgGroup
, а также замените New-MgUserAppRoleAssignment
на New-MgGroupAppRoleAssignment
.
Дополнительные сведения о назначении роли приложения для группы см. в документации по New-MgGroupAppRoleAssignment.
Снимите назначение пользователей и групп из приложения при помощи Microsoft Graph PowerShell
Откройте командную строку Windows PowerShell с повышенными привилегиями.
Запустите
Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
и войдите в систему в роли по крайней мере администратора облачных приложений.Получите пользователя и учетную запись службы
$user = Get-MgUser -UserId <userid> $sp = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>
Получите идентификатор назначения роли
$assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
Выполните следующую команду, чтобы отобразить список пользователей, назначенных приложению.
$assignments | Select *
Выполните следующую команду, чтобы удалить назначение AppRole.
Remove-MgServicePrincipalAppRoleAssignedTo -AppRoleAssignmentId '<AppRoleAssignment-id>' -ServicePrincipalId $sp.Id
Удаление всех пользователей и групп, назначенных приложению с помощью Microsoft Graph PowerShell
Выполните следующую команду, чтобы удалить всех пользователей и групп, назначенных приложению.
$assignments | ForEach-Object {
if ($_.PrincipalType -in ("user", "Group")) {
Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id -AppRoleAssignmentId $_.Id }
}
Назначение пользователей и групп приложению с помощью API Microsoft Graph
Чтобы назначить пользователей и группы приложению, войдите в Graph Explorerкак минимум администратор облачных приложений.
Необходимо предоставить согласие на следующие разрешения:
Application.ReadWrite.All
иAppRoleAssignment.ReadWrite.All
.Для назначения роли приложения вам потребуется три идентификатора:
-
principalId
: идентификатор пользователя или группы, которой назначается роль приложения. -
resourceId
: идентификатор службы ресурсовPrincipal, определяющий роль приложения. -
appRoleId
: идентификатор appRole (определенный в служебном объекте ресурса) для назначения пользователю или группе.
-
Получите корпоративное приложение. Фильтрация по
DisplayName
.GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
Запишите следующие значения из текста ответа:
- Идентификатор объекта корпоративного приложения
- Идентификатор AppRole, назначенный пользователю. Если приложение не предоставляет никаких ролей, пользователь назначает роль доступа по умолчанию.
Примечание.
Идентификатор AppRole по умолчанию —
00000000-0000-0000-0000-000000000000
. Эта роль назначается, если для сервисного принципала не определена конкретная роль AppRole.Получите пользователя, отфильтровав его по основному имени. Запишите идентификатор объекта пользователя.
GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}
Назначьте пользователя приложению.
POST https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo { "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "resourceId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1", "appRoleId": "00000000-0000-0000-0000-000000000000" }
В этом примере и
resource-servicePrincipal-id
, иresourceId
представляют корпоративное приложение.
Снять назначение пользователей и групп в приложении с помощью API Microsoft Graph
Чтобы отменить назначение всех пользователей и групп из приложения, выполните следующий запрос.
Получите корпоративное приложение. Фильтрация по
displayName
.GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
Получите список
appRoleAssignments
для приложения.GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
Удалите
appRoleAssignments
, указавappRoleAssignment
идентификатор.DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
Microsoft Graph Explorer не поддерживает пакетное удаление назначений ролей приложения напрямую. Необходимо удалить каждое назначение по отдельности. Однако вы можете автоматизировать этот процесс с помощью Microsoft Graph PowerShell для итерации и удаления каждого назначения.