ITOps AI - Prerrequisitos de Microsoft Entra
Resumen Ejecutivo
Este documento describe los permisos de API de Microsoft Entra, los roles de directorio y las configuraciones de seguridad obligatorios que el agente Beak ITOps AI necesita para ejecutar tareas de operaciones de TI, incluyendo gestión del ciclo de vida de usuarios, administración de grupos, aprovisionamiento de canales de Teams y gestión de licencias.
La implementación sigue el principio de mínimo privilegio mediante autenticación de entidad de servicio con credenciales basadas en secreto de cliente. Todas las operaciones sensibles requieren asignaciones de roles explícitas en Microsoft Entra ID combinadas con los permisos correspondientes de la API de Microsoft Graph.
Parte 1: Configuración de la Entidad de Servicio
1.1 Prerrequisitos para el Registro de Aplicación
Antes de configurar los permisos, asegúrese de que se cumplan los siguientes prerrequisitos:
| Requisito | Detalles |
|---|---|
| Inquilino de Microsoft Entra | Suscripción activa con acceso de administrador |
| Administrador Global o Administrador de Aplicaciones | Necesario para registrar la aplicación y asignar roles |
| Acceso a API habilitado | La API de Microsoft Graph debe estar disponible en su inquilino |
| Registro de Auditoría | Habilítelo para las actividades de la entidad de servicio (Microsoft Purview/Audit logs) |
1.2 Crear Registro de Aplicación
Ubicación: Centro de administración de Microsoft Entra → Registros de aplicaciones → Nuevo registro
Configuración:
- Nombre:
Beak-ITOps-Agent(o nomenclatura específica de la organización) - Tipos de cuenta compatibles:
Accounts in this organizational directory only(inquilino único) - URI de redirección: No requerido para entidad de servicio (servicio en segundo plano/demonio)
- Método de autenticación: Secreto de cliente
Generar Credenciales:
- Método: Genere un secreto de cliente con un vencimiento mínimo de 24 meses
- Seguridad: Almacene las credenciales de forma segura; nunca las confirme en un sistema de control de versiones
Parte 2: Permisos de API
2.1 Permisos de API de Microsoft Graph Requeridos
Todos los permisos indicados a continuación deben agregarse como permisos de aplicación (no delegados). Se requiere el consentimiento del administrador.
Permisos de Gestión de Usuarios
| Permiso | Ámbito de API | Propósito | Mínimo Privilegio |
|---|---|---|---|
User.ReadWrite.All | Aplicación | Crear, actualizar, eliminar, deshabilitar/habilitar usuarios; restablecer contraseñas | ✓ |
User.ManageIdentities.All | Aplicación | Gestionar identidades de usuario y operaciones de desbloqueo de cuentas | ✓ |
Directory.AccessAsUser.All | Delegado* | Requerido para operaciones de eliminación en cuentas de administración con privilegios | ⚠ |
Nota: Directory.AccessAsUser.All es típicamente delegado, pero cuando se usa en un contexto de solo aplicación, requiere que la entidad de servicio tenga asignado el rol de Administrador de Roles con Privilegios o superior.
Permisos de Gestión de Grupos
| Permiso | Ámbito de API | Propósito | Mínimo Privilegio |
|---|---|---|---|
GroupMember.ReadWrite.All | Aplicación | Agregar/eliminar usuarios de grupos; gestionar la membresía de grupos | ✓ |
Group.ReadWrite.All | Aplicación | Modificar propiedades de grupos y gestionar el ciclo de vida de los grupos | ✓ |
Group.Create | Aplicación | Crear nuevos grupos de seguridad y listas de distribución | ✓ |
Directory.ReadWrite.All | Aplicación | Gestionar objetos de directorio; crear grupos con propiedades avanzadas | ⚠ |
Permisos de Teams y Canales
| Permiso | Ámbito de API | Propósito | Mínimo Privilegio |
|---|---|---|---|
Channel.Create | Aplicación | Crear canales en cualquier equipo | ✓ |
Channel.Manage.All | Aplicación | Gestionar la configuración de canales y actualizar la información de los canales | ✓ |
TeamMember.ReadWrite.All | Aplicación | Agregar/eliminar miembros de equipos y canales de Teams | ✓ |
Team.ReadWrite.All | Aplicación | Leer y gestionar propiedades del equipo (si es necesario) | Opcional |
Permisos de Licencias
| Permiso | Ámbito de API | Propósito | Mínimo Privilegio |
|---|---|---|---|
User.ReadWrite.All | Aplicación | Asignar/eliminar licencias de Microsoft a los usuarios | (Incluido arriba) |
Organization.Read.All | Aplicación | Leer las suscripciones y SKU disponibles en el inquilino | ✓ |
2.2 Pasos para Conceder Permisos
En el centro de administración de Microsoft Entra:
- Vaya a Registros de aplicaciones → Seleccione su aplicación → Permisos de API
- Haga clic en + Agregar un permiso → Seleccione Microsoft Graph → Permisos de aplicación
- Busque y seleccione cada permiso de la Sección 2.1
- Haga clic en Agregar permisos
- Haga clic en Conceder consentimiento de administrador para [Nombre del Inquilino] (requiere Administrador Global)
- Verifique que todos los permisos muestren Estado: Concedido con marca de verificación verde
2.3 Validación de Permisos
Ejecute este comando de PowerShell para verificar los permisos concedidos:
# Connect to Microsoft Graph
Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All"
# Get service principal and display permissions
$servicePrincipal = Get-MgServicePrincipal -Filter "displayName eq 'Beak-ITOps-Agent'"
$servicePrincipal.AppRoles | Select-Object DisplayName, IsEnabled | Format-Table
# Alternative: Check via app object
Get-MgApplication -Filter "displayName eq 'Beak-ITOps-Agent'" |
Select-Object -ExpandProperty RequiredResourceAccess
Parte 3: Roles de Directorio de Microsoft Entra
3.1 Asignaciones de Roles Requeridas
La entidad de servicio debe tener asignados los siguientes roles de directorio de Microsoft Entra en el ámbito raíz del inquilino para ejecutar operaciones sensibles.
Rol Principal: Administrador de Usuarios
ID de Rol: fe930be7-5e62-47db-91af-98c3a49a38b1
Permisos Concedidos:
- Crear, actualizar, deshabilitar y eliminar cuentas de usuario
- Restablecer contraseñas de usuarios (incluida la configuración de contraseñas temporales)
- Forzar el cambio de contraseña en el siguiente inicio de sesión
- Asignar y eliminar licencias de Microsoft 365
- Crear y gestionar grupos de seguridad y de distribución
- Agregar/eliminar miembros de grupos
- Restaurar usuarios eliminados
- Gestionar propiedades básicas del usuario (teléfono, dirección, departamento, etc.)
Limitaciones:
- No puede restablecer contraseñas de Administradores Globales ni de otros Administradores de Usuarios
- No puede modificar la configuración de MFA (requiere Administrador de Autenticación con Privilegios)
- No puede gestionar el acceso a recursos de Azure (Azure RBAC)
Rol Secundario: Administrador de Autenticación con Privilegios
ID de Rol: 7be44c8a-adaf-4e2a-84d6-ab2649e08a13
Permisos Concedidos:
- Ver, establecer y restablecer métodos de autenticación para CUALQUIER usuario (incluidos administradores)
- Forzar el cambio de contraseña en el siguiente inicio de sesión para cuentas con privilegios
- Gestionar métodos de autenticación (contraseñas, teléfono, FIDO2, inicio de sesión sin contraseña)
- Restablecer la configuración de MFA de los usuarios
- Desbloquear cuentas (mediante el restablecimiento del método de autenticación)
Caso de Uso: Requerido cuando el agente de IA necesita restablecer contraseñas de usuarios con roles de administrador o gestionar MFA para cuentas con altos privilegios.
Ámbito: Asigne en el ámbito raíz del inquilino o en una unidad administrativa específica para delegación con ámbito limitado.
3.2 Pasos para la Asignación de Roles
Opción A: Usar el Centro de Administración de Microsoft Entra (GUI)
- Vaya a Entra ID → Roles y administradores → Todos los roles
- Busque y seleccione Administrador de usuarios
- Haga clic en + Agregar asignaciones
- Busque su entidad de servicio:
Beak-ITOps-Agent - Seleccione la entidad de servicio y haga clic en Siguiente
- Revise y haga clic en Asignar
- Repita el proceso para el rol Administrador de autenticación con privilegios
Opción B: Usar PowerShell
# Install module (if needed)
Install-Module Microsoft.Graph.Identity.DirectoryManagement
# Connect with admin consent
Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory"
# Get service principal
$servicePrincipal = Get-MgServicePrincipal -Filter "displayName eq 'Beak-ITOps-Agent'"
$servicePrincipalId = $servicePrincipal.Id
# Get role definitions
$userAdminRole = Get-MgRoleManagementDirectoryRoleDefinition -Filter "displayName eq 'User Administrator'"
$authAdminRole = Get-MgRoleManagementDirectoryRoleDefinition -Filter "displayName eq 'Privileged Authentication Administrator'"
# Assign roles (requires tenant root scope)
New-MgRoleManagementDirectoryRoleAssignment -RoleDefinitionId $userAdminRole.Id -PrincipalId $servicePrincipalId -DirectoryScopeId "/"
New-MgRoleManagementDirectoryRoleAssignment -RoleDefinitionId $authAdminRole.Id -PrincipalId $servicePrincipalId -DirectoryScopeId "/"
# Verify assignments
Get-MgRoleManagementDirectoryRoleAssignment -Filter "principalId eq '$servicePrincipalId'"
3.3 Consideraciones sobre el Ámbito de los Roles
| Ámbito | Caso de Uso | Impacto en la Seguridad |
|---|---|---|
| Raíz del inquilino (/) | Gestionar usuarios en toda la organización | Privilegio más alto; use PIM para acceso con tiempo limitado |
| Unidad Administrativa | Restringir a un departamento o grupo específico | Recomendado para acceso delegado; limita el radio de impacto |
| Grupo de Recursos | (No aplicable para Entra ID) | N/A |
Recomendación: Comience con el ámbito de unidad administrativa si la estructura de su organización lo permite; escale al ámbito de inquilino solo si los requisitos operativos lo exigen.
Parte 4: Requisitos por Función Específica
4.1 Desbloqueo de Cuenta de Usuario
Tarea: Desbloqueo de Cuenta de Usuario
Permisos Requeridos:
- API:
User.ManageIdentities.All - Rol: Administrador de usuarios O Administrador de autenticación con privilegios
4.2 Restablecer Contraseña de Usuario
Tarea: Restablecer Contraseña de Usuario / Forzar Cambio de Contraseña en el Próximo Inicio de Sesión
Permisos Requeridos:
- API:
User.ReadWrite.All,User.ManageIdentities.All - Rol: Administrador de usuarios o Administrador de autenticación con privilegios
4.3 Crear Nuevo Usuario
Tarea: Crear Nueva Cuenta de Usuario
Permisos Requeridos:
- API:
User.ReadWrite.All - Rol: Administrador de usuarios
4.4 Deshabilitar / Eliminar Cuenta de Usuario
Tarea: Deshabilitar o Eliminar Cuenta de Usuario
Permisos Requeridos:
- API:
User.ReadWrite.All - Rol: Administrador de usuarios o Administrador de autenticación con privilegios
- Nota Especial: Eliminar usuarios con roles de administrador requiere un privilegio mayor
4.5 Agregar / Eliminar Usuario de un Grupo
Tarea: Agregar Usuario a un Grupo / Eliminar Usuario de un Grupo / Restablecer Membresía de Grupo
Permisos Requeridos:
- API:
GroupMember.ReadWrite.All,Group.ReadWrite.All - Rol: Administrador de usuarios o Administrador de grupos
4.6 Crear Grupo de Seguridad
Tarea: Crear Nuevo Grupo de Seguridad
Permisos Requeridos:
- API:
Group.Create,Group.ReadWrite.All - Rol: Administrador de usuarios o Administrador de grupos
4.7 Crear Lista de Distribución
Tarea: Crear Nueva Lista de Distribución (Grupo Habilitado para Correo)
Permisos Requeridos:
- API:
Group.Create,Group.ReadWrite.All - Rol: Administrador de usuarios, Administrador de grupos o Administrador de Exchange
4.8 Crear Canales de Teams
Tarea: Crear Canales de MS Teams / Agregar Miembros a los Canales
Permisos Requeridos:
- API:
Channel.Create,Channel.Manage.All,TeamMember.ReadWrite.All - Rol: Administrador de Teams (opcional; el agente Beak puede operar solo con permisos de Graph)
4.9 Asignar Licencias de Microsoft
Tarea: Asignar Licencias de Microsoft a un Usuario
Permisos Requeridos:
- API:
User.ReadWrite.All,Organization.Read.All - Rol: Administrador de usuarios o Administrador de licencias
Prerrequisitos:
- El usuario debe tener configurado
usageLocation(país/región) - La SKU de licencia debe estar disponible en el inquilino
- No deben existir licencias en conflicto (p. ej., Office 365 E5 + E3)
4.10 Gestionar Acceso al Calendario
Tarea: Gestionar centralmente el acceso al calendario de usuarios y la delegación
Permisos Requeridos:
- API:
Calendars.ReadWrite,Calendars.ReadWrite.Shared - Rol (Entra ID / Exchange Online):
- Administrador de Exchange o
- Rol RBAC de aplicación con ámbito en calendarios de buzón (p. ej., rol personalizado basado en
Mailbox Recipient Permissions)
Prerrequisitos:
- Los buzones de destino tienen licencia para Exchange Online y tienen un buzón de Exchange aprovisionado
- A la entidad de servicio se le conceden permisos de aplicación de Microsoft Graph con consentimiento de administrador para:
Calendars.ReadWriteCalendars.ReadWrite.Shared
- (Recomendado) El acceso de la aplicación se limita a buzones específicos mediante Exchange Application RBAC y/o directivas de acceso de aplicaciones para mínimo privilegio