Просмотр разрешений, предоставленных корпоративным приложениям
Из этой статьи вы узнаете, как просмотреть разрешения, предоставленные приложениям в клиенте Microsoft Entra. Возможно, вам потребуется просмотреть разрешения при обнаружении вредоносного приложения или одного из них с большими разрешениями, чем это необходимо. Вы узнаете, как отозвать разрешения, предоставленные приложению с помощью API Microsoft Graph и существующих версий PowerShell.
Действия, описанные в этой статье, применяются ко всем приложениям, добавленным в клиент Microsoft Entra с помощью согласия пользователя или администратора. Дополнительные сведения о согласии приложений см. в разделе "Согласие пользователей и администраторов".
Необходимые условия
Чтобы просмотреть разрешения, предоставленные приложениям, необходимо:
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно.
- Одна из следующих ролей: администратор облачных приложений, администратор приложений.
- Владелец субъекта-службы, который не является администратором, может недействительными маркеры обновления.
Просмотр и отзыв разрешений в Центре администрирования Microsoft Entra
Кончик
Действия, описанные в этой статье, могут немного отличаться на портале, с который вы начинаете работу.
Вы можете получить доступ к Центру администрирования Microsoft Entra, чтобы просмотреть разрешения, предоставленные приложению. Вы можете отозвать разрешения, предоставленные администраторами для всей организации, и вы можете получить контекстные скрипты PowerShell для выполнения других действий.
Сведения о том, как восстановить отозванные или удаленные разрешения, см. в статье "Восстановление разрешений, предоставленных приложениям".
Чтобы просмотреть разрешения приложения, предоставленные всей организации или определенному пользователю или группе, выполните указанные ниже действия.
- Войдите в Центр администрирования Microsoft Entra как минимум администратор облачных приложений.
- Перейдите к приложениям>Identity>Application Enterprise Для всех приложений.>
- Выберите приложение, к которому требуется ограничить доступ.
- Выберите разрешения.
- Чтобы просмотреть разрешения, применимые ко всей организации, перейдите на вкладку согласия администратора. Чтобы просмотреть разрешения, предоставленные конкретному пользователю или группе, перейдите на вкладку согласия пользователя.
- Чтобы просмотреть сведения о заданном разрешении, выберите разрешение из списка. Откроется область сведений о разрешениях .
После просмотра разрешений, предоставленных приложению, вы можете отозвать разрешения, предоставленные администраторами для всей организации.
Заметка
Вы не можете отозвать разрешения на вкладке согласия пользователя с помощью портала. Эти разрешения можно отменить с помощью вызовов API Microsoft Graph или командлетов PowerShell. Дополнительные сведения см. на вкладках PowerShell и Microsoft Graph этой статьи.
Чтобы отозвать разрешения на вкладке согласия администратора, выполните следующие действия.
- Просмотрите список разрешений на вкладке согласия администратора.
- Выберите разрешение, которое вы хотите отменить, а затем выберите элемент управления ... для этого разрешения.
- Выберите " Отозвать разрешение".
Просмотр и отзыв разрешений с помощью Azure AD PowerShell
Используйте следующий скрипт Azure AD PowerShell, чтобы отозвать все разрешения, предоставленные приложению. Вам нужно войти по крайней мере администратором облачных приложений.
Connect-AzureAD
# Get Service Principal using objectId
$sp = Get-AzureADServicePrincipal -ObjectId "<ServicePrincipal objectID>"
# Get all delegated permissions for the service principal
$spOAuth2PermissionsGrants = Get-AzureADOAuth2PermissionGrant -All $true| Where-Object { $_.clientId -eq $sp.ObjectId }
# Remove all delegated permissions
$spOAuth2PermissionsGrants | ForEach-Object {
Remove-AzureADOAuth2PermissionGrant -ObjectId $_.ObjectId
}
# Get all application permissions for the service principal
$spApplicationPermissions = Get-AzureADServiceAppRoleAssignedTo -ObjectId $sp.ObjectId -All $true | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }
# Remove all application permissions
$spApplicationPermissions | ForEach-Object {
Remove-AzureADServiceAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.objectId
}
Отмена маркеров обновления с помощью Azure AD PowerShell
Удалите appRoleAssignments для пользователей или групп в приложение с помощью следующих скриптов.
Connect-AzureAD
# Get Service Principal using objectId
$sp = Get-AzureADServicePrincipal -ObjectId "<ServicePrincipal objectID>"
# Get Azure AD App role assignments using objectID of the Service Principal
$assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $sp.ObjectId -All $true | Where-Object {$_.PrincipalType -eq "User"}
# Revoke refresh token for all users assigned to the application
$assignments | ForEach-Object {
Revoke-AzureADUserAllRefreshToken -ObjectId $_.PrincipalId
}
Просмотр и отзыв разрешений с помощью 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 Azure AD 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 с помощью objectID субъекта-службы.
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 и azure Teams.