Просмотр разрешений, предоставленных корпоративным приложениям
Из этой статьи вы узнаете, как просмотреть разрешения, предоставленные приложениям в клиенте Microsoft Entra. Возможно, вам потребуется просмотреть разрешения при обнаружении вредоносного приложения или одного из них с большими разрешениями, чем это необходимо. Вы узнаете, как отозвать разрешения, предоставленные приложению с помощью API Microsoft Graph и существующих версий PowerShell.
Действия, описанные в этой статье, применяются ко всем приложениям, добавленным в клиент Microsoft Entra с помощью согласия пользователя или администратора. Дополнительные сведения о согласии приложений см. в разделе "Согласие пользователей и администраторов".
Предварительные условия
Чтобы проверить разрешения, предоставленные приложениям, требуется следующее:
- Учетная запись Microsoft Entra с активной подпиской. Создайте учетную запись бесплатно .
- Одна из следующих ролей:
- Администратор облачных приложений
- Администратор приложения.
- Владелец учетной записи службы, который не является администратором, может аннулировать токены обновления.
Просмотр и отзыв разрешений в Центре администрирования Microsoft Entra
Вы можете получить доступ к Центру администрирования Microsoft Entra, чтобы просмотреть разрешения, предоставленные приложению. Вы можете отозвать разрешения, предоставленные администраторами для всей организации, и вы можете получить контекстные скрипты PowerShell для выполнения других действий.
Сведения о том, как восстановить отозванные или удаленные разрешения, см. в статье "Восстановление разрешений, предоставленных приложениям".
Чтобы просмотреть разрешения приложения, предоставленные всей организации или определенному пользователю или группе, выполните указанные ниже действия.
- Войдите в центр администрирования Microsoft Entra как минимум в роли Администратора облачных приложений.
- Перейдите в Раздел идентификации>, затем в Приложения>, далее в Корпоративные приложения>, и наконец в Все приложения.
- Выберите приложение, доступ к которому необходимо ограничить.
- Нажмите кнопку Разрешения.
- Чтобы просмотреть разрешения, применимые ко всей организации, перейдите на вкладку согласия администратора. Чтобы просмотреть разрешения, предоставленные конкретному пользователю или группе, перейдите на вкладку согласия пользователя.
- Чтобы просмотреть сведения о заданном разрешении, выберите разрешение из списка. Откроется область сведений о разрешениях .
После просмотра разрешений, предоставленных приложению, вы можете отозвать разрешения, предоставленные администраторами для всей организации.
Примечание.
Вы не можете отозвать разрешения на вкладке согласия пользователя с помощью портала. Эти разрешения можно отменить с помощью вызовов API Microsoft Graph или командлетов PowerShell. Дополнительные сведения см. на вкладках PowerShell и Microsoft Graph этой статьи.
Чтобы отозвать разрешения на вкладке согласия администратора, выполните следующие действия.
- Просмотрите список разрешений на вкладке согласия администратора.
- Выберите разрешение, которое вы хотите отменить, а затем выберите элемент управления ... для этого разрешения.
- Выберите " Отозвать разрешение".
Просмотр и отзыв разрешений с помощью Microsoft Entra PowerShell
Используйте следующий скрипт Microsoft Entra PowerShell, чтобы отозвать все разрешения, предоставленные приложению. Вам нужно войти как минимум в качестве администратора облачных приложений.
Connect-Entra -scopes "Application.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
# Get Service Principal using objectId
$app_name = "<app-displayName>"
$sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
# Get all delegated permissions for the service principal
$spOAuth2PermissionsGrants = Get-EntraOAuth2PermissionGrant -All | Where-Object { $_.clientId -eq $sp.ObjectId }
# Remove all delegated permissions granted to the service principal
$spOAuth2PermissionsGrants | ForEach-Object {
Remove-EntraOAuth2PermissionGrant -ObjectId $_.ObjectId
}
# Get all application permissions for the service principal
$spApplicationPermissions = Get-EntraServicePrincipalAppRoleAssignment -ObjectId $sp.ObjectId -All | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }
# Remove all application permissions
$spApplicationPermissions | ForEach-Object {
Remove-EntraServicePrincipalAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.objectId
}
Удаление всех назначений пользователей и групп с помощью Microsoft Entra PowerShell
Удалите appRoleAssignments для пользователей или групп из приложения с помощью следующих скриптов.
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'"
$sp.ObjectId
# Get Microsoft Entra App role assignments using objectId of the Service Principal
$assignments = Get-EntraServicePrincipalAppRoleAssignedTo -ObjectId $sp.ObjectId -All $true
# 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
Используйте следующий скрипт Microsoft Graph PowerShell, чтобы отозвать все разрешения, предоставленные приложению. Вам нужно войти как минимум в качестве администратора облачных приложений.
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalID "<ServicePrincipal objectID>"
Example: Get-MgServicePrincipal -ServicePrincipalId 'aaaaaaaa-bbbb-cccc-1111-222222222222'
# Get all delegated permissions for the service principal
$spOAuth2PermissionsGrants= Get-MgOauth2PermissionGrant -All| Where-Object { $_.clientId -eq $sp.Id }
# Remove all delegated permissions
$spOauth2PermissionsGrants |ForEach-Object {
Remove-MgOauth2PermissionGrant -OAuth2PermissionGrantId $_.Id
}
# Get all application permissions for the service principal
$spApplicationPermissions = Get-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $Sp.Id -All | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }
# Remove all application permissions
$spApplicationPermissions | ForEach-Object {
Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $Sp.Id -AppRoleAssignmentId $_.Id
}
Удаление всех назначений пользователей и групп с помощью Microsoft Graph PowerShell
Удалите appRoleAssignments для пользователей или групп из приложения с помощью следующих скриптов.
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalID "<ServicePrincipal objectID>"
Example: Get-MgServicePrincipal -ServicePrincipalId 'aaaaaaaa-bbbb-cccc-1111-222222222222'
# Get Microsoft Entra App role assignments using objectID of the Service Principal
$spApplicationPermissions = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalID $sp.Id -All | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }
# Revoke refresh token for all users assigned to the application
$spApplicationPermissions | ForEach-Object {
Remove-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $_.PrincipalId -AppRoleAssignmentId $_.Id
}
Просмотр и отзыв разрешений с помощью Microsoft Graph
Чтобы просмотреть разрешения, войдите в Graph Explorer как минимум администратор облачных приложений.
Необходимо предоставить согласие на следующие разрешения:
Application.ReadWrite.All
, Directory.ReadWrite.All
, DelegatedPermissionGrant.ReadWrite.All
, AppRoleAssignment.ReadWrite.All
.
Делегированные разрешения
Выполните следующие запросы, чтобы просмотреть делегированные разрешения, предоставленные приложению.
Получить служебный принцип с помощью идентификатора объекта.
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
Пример:
GET https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444
Получить все делегированные разрешения для сервисного принциала
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/oauth2PermissionGrants
Удалите делегированные разрешения с помощью идентификатора oAuth2PermissionGrants.
DELETE https://graph.microsoft.com/v1.0/oAuth2PermissionGrants/{id}
Разрешения приложения
Выполните следующие запросы, чтобы просмотреть разрешения приложения, предоставленные приложению.
Получение всех разрешений приложения для субъекта-службы
GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignments
Удалить разрешения приложения с использованием идентификатора appRoleAssignment
DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
Удаление всех назначений пользователей и групп с помощью Microsoft Graph
Выполните следующие запросы, чтобы удалить appRoleAssignments пользователей или групп в приложение.
Получение учетной записи службы с использованием objectID.
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
Пример:
GET https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
Получение назначений ролей приложения Microsoft Entra с помощью идентификатора объекта служебной учетной записи.
GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo
Аннулирование токена обновления для пользователей и групп, назначенных для приложения с использованием идентификатора appRoleAssignment.
DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
Примечание.
Отмена текущего предоставленного разрешения не останавливает повторное согласие пользователей на запрошенные разрешения приложения. Необходимо остановить приложение от запроса разрешений с помощью динамического согласия. Если вы хотите заблокировать согласие пользователей в целом, ознакомьтесь с инструкцией по настройке согласия пользователей на приложения.
Другая авторизация для рассмотрения
Делегированные и разрешения приложений не являются единственными способами предоставления приложений и пользователям доступа к защищенным ресурсам. Администраторы должны знать о других системах авторизации, которые могут предоставлять доступ к конфиденциальной информации. Примеры различных систем авторизации в корпорации Майкрософт включают встроенные роли Microsoft Entra, Exchange RBAC и разрешение на ресурсы в Teams.