Skip to main content
Glama

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

Servidor CISA M365 MCP

insignia de herrería 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

graph TD A[MCP Client] -->|Request| B[MCP Server] B -->|Authentication| C[Token Manager] C -->|Access Token| D[Graph Client] D -->|API Calls| E[Microsoft Graph] E -->|Response| D D -->|Results| B B -->|Response| A

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

  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enables interaction with Microsoft Dynamics 365 CRM from Claude Desktop, allowing users to retrieve, create, and update CRM data through natural language.
    Last updated -
    5
    14
    MIT License
  • A
    security
    A
    license
    A
    quality
    A lightweight MCP server that enables integration with Microsoft SharePoint, allowing clients to interact with documents and folders through the Model Context Protocol.
    Last updated -
    9
    23
    MIT License
    • Apple
  • -
    security
    F
    license
    -
    quality
    This MCP Server provides a natural language interface to interact with Google's Policy Analyzer API, allowing users to analyze policies and evaluate compliance through conversations.
    Last updated -
    • Linux
    • Apple
  • -
    security
    F
    license
    -
    quality
    An MCP Server that enables interaction with Google's Organization Policy API, allowing users to manage organization policies that control resource behavior within Google Cloud environments.
    Last updated -
    • Linux
    • Apple

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