Просмотр разрешений, предоставленных корпоративным приложениям

Из этой статьи вы узнаете, как просмотреть разрешения, предоставленные приложениям в клиенте Microsoft Entra. Если обнаружено вредоносное приложение или приложению предоставлено больше разрешений, чем требуется, может потребоваться проверить разрешения. Вы узнаете, как отозвать разрешения, предоставленные приложению с помощью API Microsoft Graph и существующих версий PowerShell.

Действия, описанные в этой статье, применяются ко всем приложениям, добавленным в клиент Microsoft Entra с помощью согласия пользователя или администратора. Дополнительные сведения о согласии приложений см. в разделе "Согласие пользователей и администраторов".

Необходимые компоненты

Чтобы проверить разрешения, предоставленные приложениям, требуется следующее:

  • Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
  • Одна из следующих ролей: глобальный администратор, администратор облачных приложений или администратор приложений.
  • Владелец субъекта-службы, который не является администратором, может сделать недействительными маркеры обновления.

Восстановление разрешений

Дополнительные сведения о том, как восстановить разрешения, которые были отменены или удалены, см. в статье "Восстановление разрешений, предоставленных приложениям ".

Просмотр и отзыв разрешений

Совет

Действия, описанные в этой статье, могут немного отличаться на портале, с который вы начинаете работу.

Вы можете получить доступ к Центру администрирования Microsoft Entra, чтобы просмотреть разрешения, предоставленные приложению. Вы можете отозвать разрешения, предоставленные администраторами для всей организации, и вы можете получить контекстные скрипты PowerShell для выполнения других действий.

Чтобы просмотреть разрешения приложения, предоставленные всей организации или определенному пользователю или группе:

  1. Войдите в Центр администрирования Microsoft Entra как минимум облачные приложения Администратор istrator.
  2. Перейдите к приложениям>Identity>Application Enterprise Для всех приложений.>
  3. Выберите приложение, доступ к которому необходимо ограничить.
  4. Нажмите кнопку Разрешения.
  5. Чтобы просмотреть разрешения, применимые ко всей организации, перейдите на вкладку Администратор согласия. Чтобы просмотреть разрешения, предоставленные конкретному пользователю или группе, перейдите на вкладку согласия пользователя.
  6. Чтобы просмотреть сведения о заданном разрешении, выберите разрешение из списка. Откроется область сведений о разрешениях . После проверки разрешений, предоставленных приложению, вы можете отозвать разрешения, предоставленные администраторами для всей организации.

    Примечание.

    Вы не можете отозвать разрешения на вкладке согласия пользователя с помощью портала. Эти разрешения можно отменить с помощью вызовов API Microsoft Graph или командлетов PowerShell. Дополнительные сведения см. на вкладках PowerShell и Microsoft Graph этой статьи.

Чтобы отозвать разрешения на вкладке согласия Администратор, выполните следующие действия.

  1. Просмотрите список разрешений на вкладке согласия Администратор.
  2. Выберите разрешение, которое вы хотите отменить, а затем выберите элемент управления ... для этого разрешения. Screenshot shows how to revoke admin consent.
  3. Выберите " Отозвать разрешение".

Просмотр и отзыв разрешений

Используйте следующий скрипт Azure AD PowerShell, чтобы отозвать все разрешения, предоставленные приложению. Необходимо войти по крайней мере в облачное приложение Администратор istrator.

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
}

Сделайте токены обновления недействительными.

Удалите 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, чтобы отозвать все разрешения, предоставленные приложению. Необходимо войти по крайней мере в облачное приложение Администратор istrator.

Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"

# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalID "$ServicePrincipalID"

Example: Get-MgServicePrincipal -ServicePrincipalId '22c1770d-30df-49e7-a763-f39d2ef9b369'

# 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
 }

Сделайте токены обновления недействительными.

Удалите appRoleAssignments для пользователей или групп в приложение с помощью следующих скриптов.

Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"

# Get Service Principal using objectId
$sp = Get-MgServicePrincipal -ServicePrincipalID "$ServicePrincipalID"

Example: Get-MgServicePrincipal -ServicePrincipalId '22c1770d-30df-49e7-a763-f39d2ef9b369'

# 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
  }

Просмотр и отзыв разрешений

Чтобы просмотреть разрешения, войдите в Graph Обозреватель как минимум облачные приложения Администратор istrator.

Необходимо предоставить согласие на следующие разрешения:

Application.ReadWrite.All, , Directory.ReadWrite.AllDelegatedPermissionGrant.ReadWrite.AllAppRoleAssignment.ReadWrite.All.

Делегированные разрешения

Выполните следующие запросы, чтобы просмотреть делегированные разрешения, предоставленные приложению.

  1. Получение субъекта-службы с помощью идентификатора объекта.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
    

    Пример:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/00063ffc-54e9-405d-b8f3-56124728e051
    
  2. Получение всех делегированных разрешений для субъекта-службы

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/oauth2PermissionGrants
    
  3. Удалите делегированные разрешения с помощью идентификатора oAuth2PermissionGrants.

    DELETE https://graph.microsoft.com/v1.0/oAuth2PermissionGrants/{id}
    

Разрешения приложения

Выполните следующие запросы, чтобы просмотреть разрешения приложения, предоставленные приложению.

  1. Получение всех разрешений приложения для субъекта-службы

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignments
    
  2. Удаление разрешений приложения с помощью идентификатора appRoleAssignment

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

Сделайте токены обновления недействительными.

Выполните следующие запросы, чтобы удалить appRoleAssignments пользователей или групп в приложение.

  1. Получение субъекта-службы с помощью objectID.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}
    

    Пример:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/57443554-98f5-4435-9002-852986eea510
    
  2. Получение назначений ролей приложения Microsoft Entra с помощью objectID субъекта-службы.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo
    
  3. Отмена маркера обновления для пользователей и групп, назначенных приложению с помощью идентификатора appRoleAssignment.

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

Примечание.

Отмена предоставленного разрешения не приведет к запрету для пользователя на повторное предоставление согласия приложению. Если вы хотите запретить пользователям предоставлять согласие, прочитайте статью Настройка согласия пользователей для приложений.

Следующие шаги