使用说明
项目简介
本项目是一个 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 与客户端通信,易于集成和扩展。
安装步骤
-
克隆仓库
git clone https://github.com/DynamicEndpoints/Automated-BOD-25-01-CISA-Microsoft-Policies-MCP.git cd Automated-BOD-25-01-CISA-Microsoft-Policies-MCP -
安装依赖
npm install -
构建服务器
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);
信息
分类
商业系统