Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как назначить пользователей и группы корпоративному приложению в Microsoft Entra ID. При назначении пользователя приложению приложение отображается на портале My Apps для простого доступа. Если приложение предоставляет роли приложений, можно также назначить пользователю определенную роль.
Когда вы назначаете группу приложению, доступ к нему получают только пользователи из этой группы. Назначение не каскадно для вложенных групп.
Для назначения на основе групп требуется выпуск Microsoft Entra ID P1 или P2. Членство в вложенных группах в настоящее время не поддерживается. Дополнительные требования к лицензированию функций, рассмотренных в этой статье, см. на странице цен Microsoft Entra.
Для более полного контроля можно настроить определенные типы корпоративных приложений так, чтобы они требовали назначения пользователей. Дополнительные сведения о необходимости назначения пользователей для приложения см. в разделе "Управление доступом к приложению". Приложения, которым необходимо назначение пользователей, должны получать согласие администратора на свои разрешения, даже если политики пользователя в вашем каталоге позволяют пользователям самостоятельно давать согласие.
До интеграции с Microsoft Entra приложение может иметь одного или нескольких пользователей. Используя функцию обнаружения учетных записей, вы можете создать отчет всех пользователей в приложении, определить, какие пользователи имеют соответствующие учетные записи в Entra и какие пользователи являются локальными для приложения одним щелчком мыши. Дополнительные сведения о функции обнаружения учетных записей см. здесь. Это позволяет упростить подключение к Entra, а также выполнять мониторинг несанкционированного доступа.
Примечание.
Если при управлении группами на портале возникают ограничения, например с группами политик доступа к приложениям, рекомендуется использовать альтернативные методы, такие как PowerShell или Microsoft Graph API.
Предварительные условия
Чтобы назначить пользователей корпоративному приложению, вам потребуется:
- Учетная запись Microsoft Entra с активной подпиской. Если у вас еще нет учетной записи, вы можете бесплатно создать учетную запись.
- Одна из следующих ролей:
- Администратор облачных приложений
- Администратор приложений
- Администратор пользователей
- Владелец субъекта-службы.
- Microsoft Entra ID P1 или P2 для группового назначения. Дополнительные требования к лицензированию функций, рассмотренных в этой статье, см. на странице цен Microsoft Entra.
Назначьте пользователей и группы приложению с помощью центра администрирования Microsoft Entra.
Чтобы добавить учетную запись пользователя или группы корпоративному приложению:
Войдите в Microsoft Entra admin center как минимум с правами администратора облачных приложений.
Перейдите к Entra ID>Корпоративные приложения>Все приложения.
Введите имя существующего приложения в поле поиска и выберите приложение из результатов поиска.
Выберите "Пользователи и группы", а затем нажмите кнопку "Добавить пользователя или группу".
Назначьте учетную запись пользователя к приложению в клиенте Microsoft Entra.
На панели "Добавить назначение" выберите "Никто не выбран " в разделе "Пользователи и группы".
Найдите и выберите пользователя или группу, которую вы хотите назначить приложению. Например,
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.
Отмена назначения пользователей и групп из приложения с помощью 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 }
}
Назначение пользователей и групп приложению с помощью Microsoft Graph API
Чтобы назначить пользователей и группы приложению, войдите в 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представляют корпоративное приложение.
Отмена назначения пользователей и групп из приложения с помощью Microsoft Graph API
Чтобы отменить назначение всех пользователей и групп из приложения, выполните следующий запрос.
Получите корпоративное приложение. Фильтрация по
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 для итерации и удаления каждого назначения.