Skip to main content
Glama

BOD-25-01-CSA-Microsoft-Policy-MCP

Servidor CISA M365 MCP

Un servidor de Protocolo de contexto de modelo (MCP) que implementa los controles de seguridad de la Directiva operativa vinculante CISA 25-01 para Microsoft 365 (Azure AD/Entra ID).

Tabla de contenido

Descripción general

Este servidor MCP proporciona herramientas para configurar y administrar la seguridad de Microsoft 365 según los requisitos de BOD 25-01. Se integra con la API de Microsoft Graph para aplicar controles de seguridad, supervisar el cumplimiento normativo y generar informes detallados.

Características principales

  • Controles de autenticación heredados
  • Controles de acceso basados en riesgos
  • Gestión de autenticación multifactor
  • Controles de registro y consentimiento de aplicaciones
  • Gestión de políticas de contraseñas
  • Gestión de roles privilegiados
  • Cumplimiento de cuentas solo en la nube
  • Integración del sistema PAM
  • Informes completos de cumplimiento
  • Autenticación basada en tokens
  • Validación de argumentos con seguridad de tipos
  • Manejo y registro detallado de errores

Controles de seguridad

MS.AAD.1.1v1

Fecha de vencimiento: 20/06/2025

Bloquear la autenticación heredada:

  • Desactiva los protocolos de autenticación heredados
  • Reduce la superficie de ataque
  • Mejora la postura de seguridad

Detalles de implementación:

await graphClient .api('/policies/authenticationMethodsPolicy') .patch({ allowLegacyAuthentication: false, blockLegacyAuthenticationMethods: true, });

MS.AAD.2.1v1 y MS.AAD.2.3v1

Fecha de vencimiento: 20/06/2025

Bloquear usuarios e inicios de sesión de alto riesgo:

  • Bloquea a los usuarios detectados como de alto riesgo
  • Bloquea los inicios de sesión detectados como de alto riesgo
  • Aprovecha la inteligencia de amenazas de Microsoft

Detalles de implementación:

await graphClient .api('/policies/identitySecurityDefaultsEnforcementPolicy') .patch({ blockHighRiskUsers: true, riskLevelForBlocking: 'high', });

MS.AAD.3.1v1, MS.AAD.3.2v1, MS.AAD.3.3v1

Fecha de vencimiento: 20/06/2025

Configuración de MFA:

  • Implementa MFA resistente al phishing
  • Configura métodos MFA alternativos
  • Muestra el contexto de inicio de sesión en Microsoft Authenticator

Detalles de implementación:

await graphClient .api('/policies/authenticationMethodsPolicy') .patch({ policies: { fido2: { isEnabled: true, isSelfServiceRegistrationAllowed: true, }, windowsHelloForBusiness: { isEnabled: true, isSelfServiceRegistrationAllowed: true, }, }, });

MS.AAD.5.1v1, MS.AAD.5.2v1, MS.AAD.5.3v1, MS.AAD.5.4v1

Fecha de vencimiento: 20/06/2025

Controles de la aplicación:

  • Restringe el registro de aplicaciones a los administradores
  • Restringe el consentimiento de la aplicación a los administradores
  • Configura el flujo de trabajo de consentimiento del administrador
  • Bloquea el consentimiento del propietario del grupo

Detalles de implementación:

await graphClient .api('/policies/applicationRegistrationManagement') .patch({ restrictAppRegistration: true, restrictNonAdminUsers: true, });

MS.AAD.6.1v1

Fecha de vencimiento: 20/06/2025

Política de contraseñas:

  • Desactiva la expiración de la contraseña
  • Sigue las mejores prácticas de seguridad modernas

Detalles de implementación:

await graphClient .api('/policies/passwordPolicy') .patch({ passwordExpirationPolicy: { passwordExpirationDays: 0, neverExpire: true, }, });

MS.AAD.7.1v1 a MS.AAD.7.8v1

Fecha de vencimiento: 20/06/2025

Gestión de roles privilegiados:

  • Limita el número de administradores globales
  • Aplica roles granulares
  • Requiere cuentas solo en la nube
  • Hace cumplir el uso del sistema PAM
  • Configura flujos de trabajo de aprobación
  • Configura alertas

Detalles de implementación:

await graphClient .api('/policies/roleManagementPolicies') .patch({ enforceGranularRoles: true, blockGlobalAdminForGeneralUse: true, requireApprovalForGlobalAdmin: true, });

Arquitectura

Componentes

  1. Clase de servidor
    • Maneja la implementación del protocolo MCP
    • Gestiona el registro y la ejecución de herramientas.
    • Implementa el manejo y registro de errores
  2. Autenticación
    • Autenticación basada en tokens con Microsoft Graph API
    • Actualización automática del token
    • Gestión segura de credenciales
  3. Cliente gráfico
    • Envoltorio alrededor de la API de Microsoft Graph
    • Manejo de solicitudes y respuestas con seguridad de tipos
    • Lógica de reintento y manejo de errores
  4. Herramientas
    • Control de autenticación heredado
    • Gestión de acceso basada en riesgos
    • Configuración de MFA
    • Control de aplicaciones
    • Gestión de políticas de contraseñas
    • Gestión de roles
    • Configuración de alertas
    • Informes sobre el estado de las políticas

Flujo de datos

Prerrequisitos

  • Node.js 18.x o superior
  • Inquilino de Microsoft 365 con acceso de administrador
  • Aplicación de Azure AD con los permisos necesarios:
    • Política.Lectura.Escritura.Todo
    • Gestión de roles.Lectura y escritura.Todo
    • Usuario.Leer.Todo
    • Aplicación.Lectura.Escritura.Todo

Instalación

Instalación mediante herrería

Para instalar automáticamente el servidor CISA M365 MCP a través de Smithery :

npx -y @smithery/cli install cisa-m365

También puede copiar directamente las configuraciones y definiciones de MCP desde el Directorio de protocolos de Smithery y agregar el servidor MCP a su configuración de Claude o LLM que admita el protocolo MCP.

  1. Clonar el repositorio:
git clone https://github.com/DynamicEndpoints/BOD-25-01-CSA-MCP.git cd cisa-m365
  1. Instalar dependencias:
npm install
  1. Construir el servidor:
npm run build

Configuración

  1. Crear una aplicación de Azure AD:
    • Vaya a Azure Portal > Azure Active Directory
    • Registrar una nueva aplicación
    • Agregar los permisos de API necesarios
    • Crear un secreto de cliente
  2. Configurar variables de entorno:
cp .env.example .env

Editar el archivo .env :

TENANT_ID=your-tenant-id CLIENT_ID=your-client-id CLIENT_SECRET=your-client-secret
  1. Configurar los ajustes de MCP:
{ "mcpServers": { "cisa-m365": { "command": "node", "args": ["path/to/cisa-m365/build/index.js"], "env": { "TENANT_ID": "your-tenant-id", "CLIENT_ID": "your-client-id", "CLIENT_SECRET": "your-client-secret" } } } }

Uso

Herramientas disponibles

bloqueo_de_autorización_heredada

Bloquear los métodos de autenticación heredados.

{}
bloquear usuarios de alto riesgo

Bloquear usuarios detectados como de alto riesgo.

{}
aplicar MFA resistente a la suplantación de identidad (phishing)

Imponer MFA resistente a phishing para todos los usuarios.

{}
configurar_administradores_globales

Configurar las asignaciones de roles de Administrador global.

{ "userIds": ["user1-id", "user2-id"] }
obtener_estado_de_la_política

Obtenga el estado actual de todas las políticas de seguridad.

{}

Ejemplo de uso

// Block legacy authentication const result = await client.callTool('block_legacy_auth', {}); // Get policy status const status = await client.callTool('get_policy_status', {});

Referencia de API

API de configuración de políticas

interface PolicySettings { legacyAuthentication: { blocked: boolean; compliant: boolean; }; highRiskUsers: { blocked: boolean; compliant: boolean; }; mfa: { phishingResistant: boolean; alternativeEnabled: boolean; compliant: boolean; }; applications: { registrationRestricted: boolean; consentRestricted: boolean; compliant: boolean; }; passwords: { expirationDisabled: boolean; compliant: boolean; }; roles: { globalAdminCount: number; granularRolesEnforced: boolean; pamEnforced: boolean; compliant: boolean; }; }

Manejo de errores

El servidor implementa un manejo integral de errores:

  1. Errores de autenticación
    • Fallos en la adquisición de tokens
    • Problemas de permisos
    • Problemas de configuración de inquilinos
  2. Errores de API
    • Errores en las solicitudes de la API de gráficos
    • Limitación de velocidad
    • Indisponibilidad del servicio
  3. Errores de validación
    • Argumentos inválidos
    • Faltan parámetros requeridos
    • Desajustes de tipos
  4. Errores de tiempo de ejecución
    • Problemas de red
    • Problemas de tiempo de espera
    • Limitaciones de recursos

Ejemplo de respuesta de error:

{ "error": { "code": "InvalidParams", "message": "Invalid role assignment arguments", "details": { "parameter": "userIds", "constraint": "Must have between 2 and 8 users", "received": "1 user" } } }

Pruebas

  1. Ejecutar pruebas unitarias:
npm test
  1. Ejecutar pruebas de integración:
npm run test:integration
  1. Ejecutar pruebas de cumplimiento:
npm run test:compliance

Consideraciones de seguridad

  1. Autenticación
    • Utilice almacenamiento seguro de tokens
    • Implementar la rotación de tokens
    • Monitorizar actividad sospechosa
  2. Acceso a la API
    • Siga el principio del mínimo privilegio
    • Auditorías periódicas de permisos
    • Supervisar el uso de la API
  3. Protección de datos
    • Sin registro de datos confidenciales
    • Almacenamiento seguro de configuración
    • Análisis de seguridad periódicos
  4. Cumplimiento
    • Controles de cumplimiento periódicos
    • Verificación automatizada de políticas
    • Registro de auditoría

Contribuyendo

  1. Bifurcar el repositorio
  2. Crear una rama de características
  3. Realiza tus cambios
  4. Ejecutar pruebas
  5. Enviar una solicitud de extracción

Pautas:

  • Seguir el estilo de código existente
  • Agregar pruebas para nuevas funciones
  • Actualizar la documentación
  • Mantener las confirmaciones atómicas

Licencia

Instituto Tecnológico de Massachusetts (MIT)

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    A framework to use with AI to easily create a server for any service. Just drop the API Documentation in it and ask to create the MCP.
    Last updated -
    4
    TypeScript
    MIT License
  • -
    security
    A
    license
    -
    quality
    An MCP server for interacting with Azure. Contains some common Compute and Networking actions, and extensible to add many more.
    Last updated -
    Python
    Apache 2.0
  • -
    security
    A
    license
    -
    quality
    Acts as an AI Gateway for MCP servers using Azure API Management, implementing the latest MCP Authorization specification.
    Last updated -
    39
    MIT License
  • A
    security
    F
    license
    A
    quality
    A server based on MCP protocol that allows large language models to directly access Tencent Cloud Object Storage (COS) and Cloud Infinite (CI) services without coding, enabling file storage, retrieval, and processing operations.
    Last updated -
    16
    225
    7
    TypeScript

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DynamicEndpoints/Automated-BOD-25-01-CISA-Microsoft-Policies-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server