Skip to main content
Glama

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

CISA M365 MCP サーバー

鍛冶屋のバッジ Microsoft 365 (Azure AD/Entra ID) の CISA 拘束的運用指令 25-01 セキュリティ コントロールを実装するモデル コンテキスト プロトコル (MCP) サーバー。

目次

概要

このMCPサーバーは、BOD 25-01の要件に従ってMicrosoft 365のセキュリティ設定を構成および管理するためのツールを提供します。Microsoft Graph APIと統合することで、セキュリティ制御の適用、コンプライアンスの監視、詳細なレポートの提供が可能になります。

主な特徴

  • 従来の認証制御

  • リスクベースのアクセス制御

  • 多要素認証管理

  • アプリケーション登録と同意の管理

  • パスワードポリシー管理

  • 特権ロール管理

  • クラウドのみのアカウント適用

  • PAMシステム統合

  • 包括的なコンプライアンスレポート

  • トークンベースの認証

  • 型安全な引数検証

  • 詳細なエラー処理とログ記録

セキュリティ管理

MS.AAD.1.1v1

締め切り日: 2025年6月20日

レガシー認証をブロックする:

  • 従来の認証プロトコルを無効にする

  • 攻撃対象領域を縮小

  • セキュリティ体制の改善

実装の詳細:

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

MS.AAD.2.1v1 および MS.AAD.2.3v1

締め切り日: 2025年6月20日

リスクの高いユーザーとサインインをブロックします。

  • 高リスクと検出されたユーザーをブロックします

  • 高リスクとして検出されたサインインをブロックします

  • Microsoftの脅威インテリジェンスを活用

実装の詳細:

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

MS.AAD.3.1v1、MS.AAD.3.2v1、MS.AAD.3.3v1

締め切り日: 2025年6月20日

MFA 構成:

  • フィッシング耐性のあるMFAを強制する

  • 代替のMFA方法を構成する

  • Microsoft Authenticator のログインコンテキストを表示します

実装の詳細:

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

締め切り日: 2025年6月20日

アプリケーション制御:

  • アプリの登録を管理者に制限する

  • アプリの同意を管理者に制限する

  • 管理者の同意ワークフローを構成する

  • グループオーナーの同意をブロック

実装の詳細:

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

MS.AAD.6.1v1

締め切り日: 2025年6月20日

パスワードポリシー:

  • パスワードの有効期限を無効にする

  • 最新のセキュリティのベストプラクティスに従う

実装の詳細:

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

MS.AAD.7.1v1 から MS.AAD.7.8v1

締め切り日: 2025年6月20日

特権ロール管理:

  • グローバル管理者の数を制限する

  • きめ細かな役割を強制する

  • クラウド専用アカウントが必要

  • PAMシステムの使用を強制する

  • 承認ワークフローを構成する

  • アラートを設定する

実装の詳細:

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

建築

コンポーネント

  1. サーバークラス

    • MCPプロトコルの実装を処理

    • ツールの登録と実行を管理する

    • エラー処理とログ記録を実装する

  2. 認証

    • Microsoft Graph API を使用したトークンベースの認証

    • 自動トークン更新

    • 安全な資格情報管理

  3. グラフクライアント

    • Microsoft Graph API のラッパー

    • 型安全なリクエスト/レスポンス処理

    • 再試行ロジックとエラー処理

  4. ツール

    • レガシー認証制御

    • リスクベースのアクセス管理

    • MFA設定

    • アプリケーション制御

    • パスワードポリシー管理

    • 役割管理

    • アラート設定

    • ポリシーステータスレポート

データフロー

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

前提条件

  • Node.js 18.x 以上

  • 管理者アクセス権を持つ Microsoft 365 テナント

  • 必要な権限を持つ Azure AD アプリケーション:

    • ポリシー.読み取り/書き込み.すべて

    • ロール管理.読み取り書き込み.すべて

    • ユーザー.読み取り.すべて

    • アプリケーション.読み取り書き込み.すべて

インストール

Smithery経由でインストール

Smithery経由で CISA M365 MCP サーバーを自動的にインストールするには:

npx -y @smithery/cli install cisa-m365

また、 Smithery プロトコル ディレクトリから MCP 設定と定義を直接コピーし、MCP プロトコルをサポートする Claude または LLM セットアップに MCP サーバーを追加することもできます。

  1. リポジトリをクローンします。

git clone https://github.com/DynamicEndpoints/BOD-25-01-CSA-MCP.git cd cisa-m365
  1. 依存関係をインストールします:

npm install
  1. サーバーを構築します。

npm run build

構成

  1. Azure AD アプリケーションを作成します。

    • Azureポータル > Azure Active Directoryに移動します

    • 新しいアプリケーションを登録する

    • 必要なAPI権限を追加する

    • クライアントシークレットを作成する

  2. 環境変数を設定します。

cp .env.example .env

.envファイルを編集します:

TENANT_ID=your-tenant-id CLIENT_ID=your-client-id CLIENT_SECRET=your-client-secret
  1. 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" } } } }

使用法

利用可能なツール

ブロックレガシー認証

従来の認証方法をブロックします。

{}

高リスクユーザーをブロックする

高リスクと検出されたユーザーをブロックします。

{}

フィッシング対策MFAの適用

すべてのユーザーに対してフィッシング耐性のある MFA を適用します。

{}

グローバル管理者の設定

グローバル管理者ロールの割り当てを構成します。

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

ポリシーステータスの取得

すべてのセキュリティ ポリシーの現在のステータスを取得します。

{}

使用例

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

APIリファレンス

ポリシー設定API

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; }; }

エラー処理

サーバーは包括的なエラー処理を実装します。

  1. 認証エラー

    • トークン取得の失敗

    • 権限の問題

    • テナント構成の問題

  2. APIエラー

    • グラフAPIリクエストの失敗

    • レート制限

    • サービス利用不可

  3. 検証エラー

    • 無効な引数

    • 必要なパラメータが不足しています

    • 型の不一致

  4. ランタイムエラー

    • ネットワークの問題

    • タイムアウトの問題

    • リソースの制約

エラー応答の例:

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

テスト

  1. ユニットテストを実行します。

npm test
  1. 統合テストを実行します。

npm run test:integration
  1. コンプライアンス テストを実行します。

npm run test:compliance

セキュリティに関する考慮事項

  1. 認証

    • 安全なトークンストレージを使用する

    • トークンローテーションを実装する

    • 不審な活動を監視する

  2. APIアクセス

    • 最小権限の原則に従う

    • 定期的な権限監査

    • APIの使用状況を監視する

  3. データ保護

    • 機密データのログ記録なし

    • 安全な構成の保存

    • 定期的なセキュリティスキャン

  4. コンプライアンス

    • 定期的なコンプライアンスチェック

    • 自動ポリシー検証

    • 監査ログ

貢献

  1. リポジトリをフォークする

  2. 機能ブランチを作成する

  3. 変更を加える

  4. テストを実行する

  5. プルリクエストを送信する

ガイドライン:

  • 既存のコードスタイルに従う

  • 新機能のテストを追加する

  • ドキュメントの更新

  • コミットをアトミックに保つ

ライセンス

マサチューセッツ工科大学

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