Compartir vía


Revisión de los permisos concedidos a aplicaciones empresariales

En este artículo, aprenderá a revisar los permisos concedidos a las aplicaciones en el inquilino de Microsoft Entra. Es posible que tenga que revisar los permisos cuando detecte una aplicación malintencionada o cuando se hayan concedido más permisos de los necesarios. Aprenderá a revocar los permisos concedidos a la aplicación mediante la API de Microsoft Graph y las versiones existentes de PowerShell.

Los pasos de este artículo se pueden realizar en todas las aplicaciones que se han agregado al inquilino de Microsoft Entra mediante el consentimiento del usuario o del administrador. Para obtener más información sobre cómo dar su consentimiento a las aplicaciones, consulte Consentimiento del usuario y del administrador.

Requisitos previos

Para revisar los permisos concedidos a las aplicaciones, necesita:

  • Una cuenta de Microsoft Entra con una suscripción activa. Cree una cuenta gratuita.
  • Uno de los siguientes roles:
    • Administrador de aplicaciones en la nube
    • Administrador de aplicaciones.
    • Un propietario de la entidad de servicio que no sea administrador puede invalidar los tokens de actualización.

Revisión y revocación de permisos en el Centro de administración Microsoft Entra

Puede acceder al centro de administración de Microsoft Entra para ver los permisos concedidos a una aplicación. Puede revocar los permisos concedidos por los administradores de toda la organización, además de obtener scripts contextuales de PowerShell para realizar otras acciones.

Para obtener información sobre cómo restaurar permisos revocados o eliminados, consulte Restaurar permisos concedidos a las aplicaciones.

Para revisar los permisos de una aplicación que se han concedido a toda la organización o a un usuario o grupo específicos, haga lo siguiente:

  1. Inicie sesión en el Centro de administración de Microsoft Entra como al menos un administrador de aplicaciones en la nube.
  2. Vaya a Entra ID>Aplicaciones empresariales>Todas las aplicaciones.
  3. Seleccione la aplicación a la que desea restringir el acceso.
  4. Seleccione Permisos.
  5. Para ver los permisos que se aplican a toda la organización, seleccione la pestaña Consentimiento del administrador . Para ver los permisos concedidos a un usuario o grupo específicos, seleccione la pestaña Consentimiento del usuario.
  6. Para ver los detalles de un permiso determinado, seleccione el permiso de la lista. Se abre el panel Detalles del permiso . Después de revisar los permisos concedidos a una aplicación, puede revocar los permisos concedidos por los administradores para toda la organización.

    Nota

    No puede revocar permisos en la pestaña Consentimiento del usuario mediante el portal. Puede revocar estos permisos mediante llamadas API de Microsoft Graph o cmdlets de PowerShell. Vaya a las pestañas de PowerShell y Microsoft Graph de este artículo para obtener más información.

Para revocar permisos en la pestaña Consentimiento del administrador :

  1. Vea la lista de permisos en la pestaña Consentimiento del administrador .
  2. Elija el permiso que desea revocar y, a continuación, seleccione el control ... para ese permiso. Captura de pantalla que muestra cómo revocar el consentimiento del administrador.
  3. Seleccione Revocar permiso.

Revisión y revocación de permisos mediante Microsoft Entra PowerShell

Use el siguiente script de Microsoft Entra PowerShell para revocar todos los permisos concedidos a una aplicación. Debe iniciar sesión como, al menos, un Administrador de Aplicaciones en la Nube.

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
}

Eliminación de todas las asignaciones de usuarios y grupos mediante Microsoft Entra PowerShell

Quite appRoleAssignments para los usuarios o grupos de la aplicación mediante los siguientes scripts.

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

Revisión y revocación de permisos mediante Microsoft Graph PowerShell

Use este script de PowerShell de Microsoft Graph para revocar todos los permisos concedidos a esta aplicación. Debe iniciar sesión como, al menos, un Administrador de Aplicaciones en la Nube.

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
}

Eliminación de todas las asignaciones de usuarios y grupos mediante Microsoft Graph PowerShell

Quite appRoleAssignments para los usuarios o grupos de la aplicación mediante los siguientes scripts.

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
}

Revisión y revocación de permisos mediante Microsoft Graph

Para revisar los permisos, inicie sesión en el Explorador de Graph como al menos un administrador de aplicaciones en la nube.

Tiene que dar su consentimiento a los siguientes permisos:

Application.ReadWrite.All, Directory.ReadWrite.All, DelegatedPermissionGrant.ReadWrite.All, AppRoleAssignment.ReadWrite.All.

Permisos delegados

Ejecute las siguientes consultas para revisar los permisos delegados concedidos a una aplicación.

  1. Obtenga la entidad de servicio mediante el identificador de objeto.

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

    Ejemplo:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/00001111-aaaa-2222-bbbb-3333cccc4444
    
  2. Obtención de todos los permisos delegados de la entidad de servicio

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/oauth2PermissionGrants
    
  3. Quite los permisos delegados mediante el id. oAuth2PermissionGrants.

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

Permisos de aplicación

Ejecute las siguientes consultas para revisar los permisos de aplicación concedidos a una aplicación.

  1. Obtención de todos los permisos de aplicación de la entidad de servicio

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignments
    
  2. Eliminación de permisos de aplicación mediante el id. appRoleAssignment

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

Eliminación de todas las asignaciones de usuarios y grupos mediante Microsoft Graph

Ejecute las siguientes consultas para quitar appRoleAssignments de usuarios o grupos en la aplicación.

  1. Obtenga la entidad de servicio mediante objectID.

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

    Ejemplo:

    GET https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    
  2. Obtenga asignaciones de roles de aplicación de Microsoft Entra mediante objectID de la entidad de servicio.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo
    
  3. Revoque el token de actualización para los usuarios y grupos asignados a la aplicación mediante el id. appRoleAssignment.

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

Nota

Revocar el permiso concedido actual no impide que los usuarios vuelvan a dar su consentimiento a los permisos solicitados de la aplicación. Debe impedir que la aplicación solicite los permisos a través del consentimiento dinámico. Si desea impedir que los usuarios consienten por completo, lea Configuración de cómo los usuarios dan su consentimiento a las aplicaciones.

Otra autorización que se debe tener en cuenta

Los permisos de delegado y de aplicación no son las únicas formas de conceder a las aplicaciones y a los usuarios acceso a los recursos protegidos. Los administradores deben tener en cuenta otros sistemas de autorización que pueden conceder acceso a información confidencial. Algunos ejemplos de los diversos sistemas de autorización de Microsoft son los roles integrados de Microsoft Entra, RBAC de Exchange y el consentimiento específico de recursos de Teams.