Puntos clave
- Objetivo: automatizar la expiración del acceso administrativo temporal en Microsoft 365 con Microsoft Entra PIM o PowerShell, para que los privilegios elevados se revoquen de forma automática en lugar de quedar activos de forma indefinida.
- Requisitos previos: Microsoft Entra ID P2 (necesario para PIM), PowerShell 7+ con el módulo Microsoft.Graph y permisos para asignar roles de directorio.
- Método 1: Entra PIM. Asigna a los usuarios como elegibles (no activos) para un rol mediante New-MgRoleManagementDirectoryRoleEligibilityScheduleRequest y establece una expiración automática (por ejemplo, 2 horas).
- Método 2: autoactivación con PowerShell. Usa Start-MgRoleManagementDirectoryRoleAssignmentScheduleRequest -Action «SelfActivate» para lanzar una activación limitada en el tiempo que se revoca automáticamente al cumplirse la duración definida.
- Auditoría y control: registra el estado del acceso en el registro de Windows, programa scripts que eliminen asignaciones de rol obsoletas y configura la directiva de grupo para auditar el uso de privilegios y los inicios y cierres de sesión.
Gestionar cuentas de administrador exige un equilibrio cuidadoso entre seguridad y experiencia de usuario. Por ejemplo, el acceso administrativo temporal en Entra solo tiene sentido en determinados segmentos o flujos de trabajo, en los que los privilegios de administrador no siempre son necesarios. Si quieres implantar esta configuración, sigue esta guía completa.
Asegúrate de aplicar las políticas de expiración de forma coherente en todos los sistemas.
→ Descubre NinjaOne para la automatización basada en políticas
Métodos para automatizar el acceso temporal en Microsoft 365
Usa la tabla para elegir el método que prefieras e ir directamente a sus pasos de activación.
📌 Requisitos previos:
- Microsoft Entra ID P2 o Microsoft Entra Suite (necesario para PIM)
- PowerShell 7+ con el módulo Microsoft.Graph (Microsoft Graph PowerShell SDK)
- Permisos de administrador para asignar roles de directorio
- [Opcional] GPO o etiquetado en el registro de Windows para registrar el estado en local
- [Opcional] NinjaOne RMM para desplegar scripts, analizar el registro de Windows o enviar alertas
👉 Recuerda: algunos pasos pueden variar según los valores predeterminados del sistema o la configuración activa.
| Haz clic para elegir un método | 💻 Mejor para usuarios individuales | 💻💻💻 Mejor para empresas |
| Método 1: Entra PIM | ✓ | |
| Método 2: script de PowerShell | ✓ |
💡 Consejo: consulta la sección Aspectos a tener en cuenta para ver recomendaciones sobre cómo gestionar los posibles riesgos.
Método 1: usar Microsoft Entra Privileged Identity Management (PIM)
Este método es ideal para organizaciones con Entra ID P2/PIM que quieran conceder acceso temporal con expiración automática.
- Este es el script para asignar un rol elegible en lugar de un rol activo:
Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory","Directory.ReadWrite.All"
- Después, así es como se obtienen el ID del usuario elegible y el ID del rol:
$user = Get-MgUser -UserPrincipalName "[email protected]"
$role =Get-MgRoleManagementDirectoryRoleDefinition | Where-Object {$_.DisplayName -eq "Global
Administrator"}
- Si el usuario está inactivo:
New-MgRoleManagementDirectoryRoleEligibilityScheduleRequest `
-PrincipalId $user.Id `
-RoleDefinitionId $roleDef.Id `
-DirectoryScopeId "/" `
-Action "AdminAssign" `
-ScheduleInfo @{startDateTime = (Get-Date); expiration =
@{type="AfterDuration"; duration="PT2H"}}
Así, el usuario recibe acceso durante solo 2 horas y este expira automáticamente.
Método 2: automatizar la activación y expiración de roles con un script de PowerShell
Los scripts de PowerShell son flexibles y pueden ejecutarse desde un RMM para desplegarlos con un solo clic o automatizarlos. Este es el script correspondiente:
Start-MgRoleManagementDirectoryRoleAssignmentScheduleRequest `
-Action "SelfActivate" `
-PrincipalId $user.Id `
-RoleDefinitionId $role.Id `
-DirectoryScopeId "/" `
-ScheduleInfo @{
startDateTime = (Get-Date);
expiration = @{
type = "AfterDuration";
duration = "PT1H"
}
}
Se enviará una solicitud de activación contra la elegibilidad existente, lo que hace que PIM aplique una asignación limitada en el tiempo a los usuarios elegibles. Este script también finaliza el acceso elevado una vez transcurrida la duración establecida.
Consejos para registrar y auditar las solicitudes de acceso administrativo temporal
Las siguientes acciones te ayudarán a aplicar y registrar los privilegios elevados temporales.
Guardar el estado del acceso administrativo en el registro de Windows
Puedes consultar las claves de registro asociadas con PowerShell para comprobar si el despliegue se ha realizado correctamente. Ejecuta el siguiente script con privilegios administrativos:
New-Item -Path "HKLM:\SOFTWARE\Org\AdminAccessAudit" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\AdminAccessAudit" -Name
"LastAdminGranted" -Value (Get-Date).ToString("u")
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\AdminAccessAudit" -Name
"ExpiresAt" -Value ((Get-Date).AddHours(1)).ToString("u")
💡 Consejo: además, también puedes comprobar los valores del registro con reg query HKLM\SOFTWARE\Org\AdminAccessAudit en un símbolo del sistema con privilegios elevados.
Supervisar o revocar el acceso administrativo activo mediante un script
Para aplicarlo de inmediato, puedes usar PowerShell para enumerar las asignaciones activas y eliminarlas una vez superado el periodo de acceso establecido:
$assignments =
Get-MgRoleManagementDirectoryRoleAssignmentScheduleInstance
foreach ($a in $assignments) {
if ($a.StartDateTime -lt (Get-Date).AddHours(-1)) {
Remove-MgRoleManagementDirectoryRoleAssignmentScheduleInstance
-RoleAssignmentScheduleInstanceId $a.Id
}
}
Puedes programarlo con el Programador de tareas o automatizarlo mediante una política de NinjaOne.
Usar la directiva de grupo para el registro de eventos y su aplicación
La directiva de grupo no permite automatizar directamente la expiración del acceso temporal, pero sí puedes usarla para registrar auditorías y detectar solicitudes y cambios de acceso.
Estas son algunas formas en que puede complementar a PIM:
- Habilita la auditoría detallada de inicios y cierres de sesión, uso de privilegios y gestión de grupos de seguridad.
- Despliega una tarea programada que ejecute tu script de revocación o supervisión con la periodicidad que decidas.
- Lanza scripts a partir de determinados ID de evento (por ejemplo, un cambio en el grupo de administradores locales) para remediar o registrar al instante.
Además, puedes limitar el inicio de sesión interactivo a usuarios estándar y gestionar la pertenencia al grupo Administradores local mediante GPO o grupos restringidos.
⚠️ Aspectos a tener en cuenta al automatizar la asignación de perfiles en Intune
A continuación tienes los riesgos más habituales, sus posibles consecuencias y algunas formas prácticas de revertirlos o prevenirlos.
| Riesgos | Posibles consecuencias | Soluciones |
| Criterios de elegibilidad poco estrictos | Las solicitudes de acceso elevado pueden utilizarse de forma indebida o convertirse en spam. | Define reglas de elegibilidad estrictas; exige MFA para activar roles y limitar el spam; usa Power Automate o la API de Graph para avisar a usuarios y administradores de las activaciones de roles temporales. |
| Registros de auditoría excesivos o duplicados | Dificulta encontrar los eventos importantes y consume almacenamiento adicional | Ajusta la política de auditoría para centrarte solo en uso de privilegios, inicio y cierre de sesión y gestión de grupos; archiva o reenvía los registros a un SIEM. |
| Asignación incorrecta del rol en PIM (elegible frente a activo) | El usuario puede conservar derechos de acceso elevados de forma indefinida. | Revisa las asignaciones en Entra PIM → Roles; revócalas de inmediato si es necesario desde el portal o con PowerShell. |
| El usuario no consigue acceder | Errores de permisos en la API de Graph | Comprueba que la aplicación o el usuario tiene permisos RoleManagement.ReadWrite.Directory. |
Como siempre con las políticas de acceso, conviene probar y validar las configuraciones en un entorno o segmento controlado. La duración del acceso temporal también merece una reflexión detenida, ya que algunos flujos de trabajo pueden necesitar periodos de expiración más largos o más cortos.
Mejora tus políticas de acceso temporal con NinjaOne
Las políticas de acceso son fundamentales para las operaciones de TI y de negocio, y por eso la automatización resulta tan valiosa: crea flujos de trabajo eficientes, reduce los retrasos y genera registros auditables para la gestión de riesgos y el cumplimiento. NinjaOne te ayuda a conseguirlo y te permite:
- Desplegar scripts para iniciar o revocar el acceso temporal a un rol
- Leer claves de registro para validar el acceso administrativo a Windows
- Lanzar alertas cuando los dispositivos mantienen privilegios de administrador vencidos
- Registrar eventos relacionados con la elevación de privilegios para las revisiones de auditoría
- Etiquetar endpoints según su riesgo de exposición administrativa o su cobertura en la política de escalado
Con NinjaOne RMM®, los MSP pueden aplicar políticas de acceso cero permanente con más eficiencia y coherencia, sobre todo en entornos en crecimiento, gracias a la automatización, la visibilidad y el control.
Automatiza la gestión del ciclo de vida del acceso para mantener la visibilidad y el control a gran escala.
Buenas prácticas para automatizar la asignación de perfiles en Intune
La gestión de credenciales requiere un enfoque por capas para equilibrar realmente seguridad y flexibilidad entre todas las partes implicadas. Por un lado, el acceso elevado puede ser importante en distintos flujos de trabajo de TI y de producción. Por otro, los privilegios pueden utilizarse de forma indebida o abusiva si no hay políticas estrictas de implantación y control. Teniendo esto en cuenta, el acceso temporal es una salvaguarda fiable para dar soporte a tareas críticas y reducir riesgos.
Temas relacionados:
- Ventajas e inconvenientes de Microsoft Azure: Active Directory
- ¿Qué es la gestión de credenciales? Definición y buenas prácticas
Guía de inicio rápido
Enfoque recomendado:
Para automatizar la expiración del acceso temporal, lo más probable es que necesites:
- Usar las capacidades de scripting de NinjaOne
- Combinarlas con políticas de acceso condicional de Microsoft 365
- Desarrollar, si procede, un script personalizado para gestionar el acceso de las cuentas de administrador
