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 Azure Active Directory (Azure AD). Es posible que tenga que revisar los permisos cuando haya detectado una aplicación malintencionada o cuando se hayan concedido a la aplicación más permisos de los necesarios.

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

Prerrequisitos

Para revisar los permisos concedidos a las aplicaciones, necesita:

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

Revisar permisos

Puede acceder al portal de Azure AD para obtener scripts de PowerShell contextuales para realizar las acciones.

Para revisar los permisos de la aplicación:

  1. Inicie sesión en Azure Portal con uno de los roles enumerados en los requisitos previos.
  2. Seleccione Azure Active Directory y, luego, Aplicaciones empresariales.
  3. Seleccione la aplicación a la que desea restringir el acceso.
  4. Seleccione Permisos. En la barra de comandos, seleccione Revisar permisos. Captura de pantalla de la ventana de revisión de permisos.
  5. Para explicar por qué quiere revisar los permisos de la aplicación, seleccione cualquiera de las opciones enumeradas después de la pregunta Why do you want to review permissions for this application? (¿Por qué quiere revisar los permisos de esta aplicación?)

Cada opción genera scripts de PowerShell que permiten controlar el acceso de los usuarios a la aplicación y revisar los permisos concedidos a esta. Para información sobre cómo controlar el acceso de los usuarios a una aplicación, consulte Eliminación del acceso de un usuario a una aplicación.

Mediante el script de PowerShell de Azure AD, puede revocar todos los permisos concedidos a una aplicación.

Connect-AzureAD Application.Read.All, Application.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All

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

Invalidación de los tokens de actualización

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

Connect-AzureAD Application.Read.All, Application.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All

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

Mediante el script de PowerShell de Microsoft Graph, puede revocar todos los permisos concedidos a esta aplicación.

Connect-MgGraph Application.Read.All, Application.ReadWrite.All, Directory.Read.All, Directory.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-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $Sp.Id -All | Where-Object { $_.PrincipalType -eq "ServicePrincipal" }

# Remove all application permissions
$spApplicationPermissions | ForEach-Object {
Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $Sp.Id  -AppRoleAssignmentId $_.Id
 }

Invalidación de los tokens de actualización

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

Connect-MgGraph Application.Read.All, Application.ReadWrite.All, Directory.Read.All, Directory.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
  }

Para revisar los permisos, inicie sesión en el Explorador de Graph con uno de los roles enumerados en la sección de requisitos previos.

Tendrá que dar su consentimiento a los siguientes permisos:

Application.Read.All, Application.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All.

Permisos delegados

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

  1. Obtención de la entidad de servicio mediante objectID

    GET /servicePrincipals/{id}
    

    Ejemplo:

    GET /servicePrincipals/57443554-98f5-4435-9002-852986eea510
    
  2. Obtención de todos los permisos delegados de la entidad de servicio

    GET /servicePrincipals/{id}/oauth2PermissionGrants
    
  3. Quite los permisos delegados mediante el id. oAuth2PermissionGrants.

    DELETE /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 /servicePrincipals/{servicePrincipal-id}/appRoleAssignments
    
  2. Eliminación de permisos de aplicación mediante el id. appRoleAssignment

    DELETE /servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

Invalidación de los tokens de actualización

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

  1. Obtenga la entidad de servicio mediante objectID.

    GET /servicePrincipals/{id}
    

    Ejemplo:

    GET /servicePrincipals/57443554-98f5-4435-9002-852986eea510
    
  2. Obtenga asignaciones de roles de aplicación de Azure AD mediante objectID de la entidad de servicio.

    GET /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 /servicePrincipals/{servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

Nota:

La revocación del permiso actual concedido no impedirá que los usuarios vuelvan a tener consentimiento en la aplicación. Si desea bloquear el consentimiento de los usuarios, lea Configuración del consentimiento de los usuarios finales a las aplicaciones.

Pasos siguientes