使用说明

项目简介

本项目是一个 Model Context Protocol (MCP) 服务器,旨在帮助用户自动化配置 Microsoft 365 环境的安全设置,使其符合美国网络安全和基础设施安全局 (CISA) 发布的 Binding Operational Directive 25-01 (BOD 25-01) 安全策略。该服务器提供了一系列工具,可以管理 Azure AD、Exchange Online、Teams、SharePoint 等 M365 服务的安全配置,简化合规性管理流程。

主要功能点

  • 自动化安全配置:根据 CISA BOD 25-01 最佳实践,自动配置 Microsoft 365 的各项安全策略。
  • 多服务支持:覆盖 Azure AD, Exchange Online, Teams, SharePoint, Defender 等多个 M365 核心服务。
  • 策略管理工具:提供丰富的工具集,用于配置 MFA、应用权限、共享策略、密码策略等关键安全控制。
  • 合规状态检查:支持获取当前 M365 环境的安全策略合规状态,方便用户监控和审计。
  • 标准化接口:基于 MCP 协议,通过 JSON-RPC 与客户端通信,易于集成和扩展。

安装步骤

  1. 克隆仓库

    git clone https://github.com/DynamicEndpoints/Automated-BOD-25-01-CISA-Microsoft-Policies-MCP.git
    cd Automated-BOD-25-01-CISA-Microsoft-Policies-MCP
  2. 安装依赖

    npm install
  3. 构建服务器

    npm run build

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令和参数,以下是针对 'cisa-m365' 服务器的配置示例,用于管理 Azure AD 安全策略:

{
  "mcpServers": {
    "cisa-m365": {
      "command": "node",
      "args": ["path/to/Automated-BOD-25-01-CISA-Microsoft-Policies-MCP/packages/cisa-m365/build/index.js"],
      "env": {
        "TENANT_ID": "your-tenant-id",
        "CLIENT_ID": "your-client-id",
        "CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

配置参数说明

  • 'server name': 'cisa-m365' (服务器名称,客户端用于识别和调用)
  • 'command': 'node' (启动服务器的命令,这里使用 Node.js 运行时)
  • 'args': '["path/to/Automated-BOD-25-01-CISA-Microsoft-Policies-MCP/packages/cisa-m365/build/index.js"]' (命令参数,指向构建后的服务器 JavaScript 文件路径。请将 'path/to/Automated-BOD-25-01-CISA-Microsoft-Policies-MCP' 替换为实际仓库克隆后的本地路径)
  • 'env': 环境变量配置,用于服务器连接 Microsoft 365:
    • 'TENANT_ID': 您的 Microsoft 365 租户 ID
    • 'CLIENT_ID': 您在 Azure AD 中注册的应用的客户端 ID
    • 'CLIENT_SECRET': 您在 Azure AD 中注册的应用的客户端密钥

注意

  • 请确保已在 Azure AD 中注册应用程序,并授予 API 权限,具体权限要求请参考仓库 README 文档。
  • 根据您需要管理的 M365 服务,选择相应的服务器配置 ('cisa-exchange', 'cisa-teams', 'cisa-sharepoint', 'cisa-defender' 等),并修改 'args' 参数指向对应服务的入口文件。

基本使用方法

配置完成后,MCP 客户端即可连接到该 MCP 服务器,并调用其提供的工具来管理 Microsoft 365 安全策略。例如,使用 'cisa-m365' 服务器的 'block_legacy_auth' 工具可以禁用传统身份验证。具体工具列表和使用方法请参考仓库的 README 文档和 API Reference。

// 示例代码 (MCP 客户端代码,非本仓库代码)
// 假设 client 为已连接到 MCP 服务器的客户端实例
// 禁用传统身份验证
const result = await client.callTool('block_legacy_auth', {});
console.log(result);

// 获取策略状态
const status = await client.callTool('get_policy_status', {});
console.log(status);

信息

分类

商业系统