Gestión de Permisos en Azure AD: Cómo Revocar User Consent en Enterprise Application

Eliminar las User Consent ya sea para un usuario específico, varios usuarios, no puede hacerse a través del portal. Actualmente, no existen características de interfaz de usuario para eliminarlas User Consent; únicamente se puede hacer con PowerShell o Graph API .

El siguiente ejemplo es un script de PowerShell que permite la eliminación de un usuario que ha otorgado su consentimiento, que he preparado.

#Requires -Modules AzureAD
[CmdletBinding()]
param (
    # El ID de objeto del principal de servicio (usuario) de la aplicación. Se puede encontrar en Aplicaciones empresariales -> tu aplicación, en la pestaña de descripción general.
    [Parameter(Mandatory=$true)]
    [string] $AzureAdServicePrincipalObjectId,
    # El ID de objeto principal del usuario del que quieres eliminar el consentimiento
    [Parameter(Mandatory=$true)]
    [string] $UserPrincipalObjectId
)
Connect-AzureAD
 
# Obtener el principal de servicio usando el ID de objeto
$sp = Get-AzureADServicePrincipal -ObjectId $AzureAdServicePrincipalObjectId
 
# Obtener todos los permisos delegados para el principal de servicio
$spOAuth2PermissionsGrants = Get-AzureADOAuth2PermissionGrant -All $true| Where-Object { $_.clientId -eq $sp.ObjectId }
 
# Eliminar los permisos concedidos para el principal
$spOAuth2PermissionsGrants | Where-Object PrincipalId -eq $UserPrincipalObjectId | Remove-AzureADOAuth2PermissionGrant

Este script proporciona una forma programática de gestionar el consentimiento de los usuarios para tu aplicación de Azure AD. Los consentimientos de los usuarios pueden ser eliminados según sea necesario, lo que puede ser útil por motivos de cumplimiento o seguridad. Sin embargo, es crucial tener cuidado al revocar permisos, ya que puede afectar la funcionalidad de tu aplicación para los usuarios afectados.

  1. Parámetros:
    • $AzureAdServicePrincipalObjectId: El ID de objeto del principal de servicio (aplicación) de Azure AD. Este ID se encuentra en el portal de Azure en la sección de Aplicaciones empresariales -> Tu aplicación -> Pestaña de descripción general.
    • $UserPrincipalObjectId: El ID de objeto principal del usuario del cual deseas eliminar el consentimiento.
  2. Conexión a Azure AD:
    • El script comienza conectándose a Azure AD utilizando el cmdlet Connect-AzureAD. Esto es necesario para realizar operaciones en el directorio activo de Azure.
  3. Obtener el Principal de Servicio:
    • Utiliza el cmdlet Get-AzureADServicePrincipal para obtener el principal de servicio (aplicación) utilizando el ID de objeto proporcionado ($AzureAdServicePrincipalObjectId).
  4. Obtener Permisos Delegados:
    • Utiliza el cmdlet Get-AzureADOAuth2PermissionGrant para obtener todos los permisos delegados para el principal de servicio. Estos permisos representan los consentimientos concedidos por los usuarios para la aplicación. Luego, filtra estos permisos según el ID de cliente del principal de servicio obtenido anteriormente ($sp.ObjectId).
  5. Eliminar el Consentimiento:
    • Utiliza el cmdlet Remove-AzureADOAuth2PermissionGrant para eliminar el consentimiento concedido para el usuario especificado ($UserPrincipalObjectId). Esto se realiza mediante la eliminación de los registros correspondientes en los permisos delegados obtenidos anteriormente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *