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

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

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

Необходимые условия

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

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

Просмотр и отзыв разрешений в Центре администрирования Microsoft Entra

Кончик

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

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

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

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

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

    Заметка

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

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

  1. Просмотрите список разрешений на вкладке согласия администратора.
  2. Выберите разрешение, которое вы хотите отменить, а затем выберите элемент управления ... для этого разрешения. Снимок экрана: отмена согласия администратора.
  3. Выберите " Отозвать разрешение".

Просмотр и отзыв разрешений с помощью 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.AllDelegatedPermissionGrant.ReadWrite.AllAppRoleAssignment.ReadWrite.All.

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

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

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

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

    Пример:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444
    
  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}
    

Недопустимое использование маркеров обновления с помощью Microsoft Graph

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

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

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

    Пример:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    
  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}
    

Заметка

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

Другая авторизация для рассмотрения

Делегированные и разрешения приложений не являются единственными способами предоставления приложений и пользователям доступа к защищенным ресурсам. Администраторы должны знать о других системах авторизации, которые могут предоставлять доступ к конфиденциальной информации. Примеры различных систем авторизации в Корпорации Майкрософт включают встроенные роли Microsoft Entra, согласие exchange RBAC и azure Teams.

Дальнейшие действия