Saltar al contenido principal

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:

RequisitoDetalles
Inquilino de Microsoft EntraSuscripción activa con acceso de administrador
Administrador Global o Administrador de AplicacionesNecesario para registrar la aplicación y asignar roles
Acceso a API habilitadoLa API de Microsoft Graph debe estar disponible en su inquilino
Registro de AuditoríaHabilí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 APIPropósitoMínimo Privilegio
User.ReadWrite.AllAplicaciónCrear, actualizar, eliminar, deshabilitar/habilitar usuarios; restablecer contraseñas✓
User.ManageIdentities.AllAplicaciónGestionar identidades de usuario y operaciones de desbloqueo de cuentas✓
Directory.AccessAsUser.AllDelegado*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 APIPropósitoMínimo Privilegio
GroupMember.ReadWrite.AllAplicaciónAgregar/eliminar usuarios de grupos; gestionar la membresía de grupos✓
Group.ReadWrite.AllAplicaciónModificar propiedades de grupos y gestionar el ciclo de vida de los grupos✓
Group.CreateAplicaciónCrear nuevos grupos de seguridad y listas de distribución✓
Directory.ReadWrite.AllAplicaciónGestionar objetos de directorio; crear grupos con propiedades avanzadas⚠

Permisos de Teams y Canales​

PermisoÁmbito de APIPropósitoMínimo Privilegio
Channel.CreateAplicaciónCrear canales en cualquier equipo✓
Channel.Manage.AllAplicaciónGestionar la configuración de canales y actualizar la información de los canales✓
TeamMember.ReadWrite.AllAplicaciónAgregar/eliminar miembros de equipos y canales de Teams✓
Team.ReadWrite.AllAplicaciónLeer y gestionar propiedades del equipo (si es necesario)Opcional

Permisos de Licencias​

PermisoÁmbito de APIPropósitoMínimo Privilegio
User.ReadWrite.AllAplicaciónAsignar/eliminar licencias de Microsoft a los usuarios(Incluido arriba)
Organization.Read.AllAplicaciónLeer las suscripciones y SKU disponibles en el inquilino✓

2.2 Pasos para Conceder Permisos​

En el centro de administración de Microsoft Entra:

  1. Vaya a Registros de aplicaciones → Seleccione su aplicación → Permisos de API
  2. Haga clic en + Agregar un permiso → Seleccione Microsoft Graph → Permisos de aplicación
  3. Busque y seleccione cada permiso de la Sección 2.1
  4. Haga clic en Agregar permisos
  5. Haga clic en Conceder consentimiento de administrador para [Nombre del Inquilino] (requiere Administrador Global)
  6. 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)

  1. Vaya a Entra ID → Roles y administradores → Todos los roles
  2. Busque y seleccione Administrador de usuarios
  3. Haga clic en + Agregar asignaciones
  4. Busque su entidad de servicio: Beak-ITOps-Agent
  5. Seleccione la entidad de servicio y haga clic en Siguiente
  6. Revise y haga clic en Asignar
  7. 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​

ÁmbitoCaso de UsoImpacto en la Seguridad
Raíz del inquilino (/)Gestionar usuarios en toda la organizaciónPrivilegio más alto; use PIM para acceso con tiempo limitado
Unidad AdministrativaRestringir a un departamento o grupo específicoRecomendado 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.ReadWrite
    • Calendars.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