Agent AI conversațional peste Active Directory cu server MCP (Model Context Protocol) – interogare AD în limbaj natural

Configurare noua (How To)

Situatie

Model Context Protocol (MCP) este noul standard prin care un model AI poate apela direct “unelte” (tools) — de exemplu, poate căuta un utilizator în Active Directory sau poate verifica apartenența la grupuri, doar pe baza unei întrebări în limbaj natural, fără ca administratorul să scrie manual comenzi PowerShell/LDAP de fiecare dată.

Această soluție instalează un server MCP dedicat Active Directory, îl conectează la un client AI (Claude Desktop sau LM Studio cu model local) și permite interogări gen “arată-mi utilizatorii care nu s-au logat de 60 de zile” direct în chat — cu acces strict read-only pentru siguranță.

Solutie

Pasi de urmat

Pasul 1 — Cerințe preliminare

powershell
# Verifica Python (minim 3.10)
python --version

# Instaleaza dependentele pentru serverul MCP
pip install mcp ldap3 python-dotenv

Pasul 2 — Configurare cont de serviciu read-only în AD

powershell
# Contul dedicat pentru conectarea MCP -> AD (doar citire)
$SvcAccount = "svc-mcp-readonly"

# Verifica ca NU are drepturi de scriere/administrare
Get-ADUser $SvcAccount -Properties MemberOf | 
    Select-Object -ExpandProperty MemberOf

Contul nu trebuie să fie membru al niciunui grup administrativ (Domain Admins, Account Operators etc.) — doar Domain Users e suficient pentru citire LDAP standard.

Pasul 3 — Configurare server MCP pentru Active Directory

Creează fișierul .env în folderul serverului MCP:

AD_SERVER=ldap://dc01.domeniu.local
AD_BASE_DN=DC=domeniu,DC=local
AD_BIND_USER=svc-mcp-readonly@domeniu.local
AD_BIND_PASSWORD=ParolaComplexa!23
AD_WRITE_ENABLED=false

AD_WRITE_ENABLED=false este setarea critică de siguranță — blochează orice operație de modificare, chiar dacă modelul AI ar “încerca” să o ceară.

Pasul 4 — Pornire server MCP

powershell
# Ruleaza serverul MCP local (stdio, comunicare directa cu clientul AI)
cd C:\MCP-AD-Server
python server.py

Output așteptat:

[MCP] Server pornit in mod read-only

[MCP] Conectat la: dc01.domeniu.local
[MCP] Astept conexiuni de la client...

Pasul 5 — Conectare client AI (LM Studio cu model local)

În configurația clientului MCP (ex. Claude Desktop sau LM Studio), adaugă serverul:

json
{
  "mcpServers": {
    "active-directory": {
      "command": "python",
      "args": ["C:\\MCP-AD-Server\\server.py"],
      "env": {
        "AD_WRITE_ENABLED": "false"
      }
    }
  }
}

Pasul 6 — Testare interogări în limbaj natural

Exemple de întrebări pe care le poți pune direct în chat, odată conectat:

"Arata-mi toti utilizatorii care nu s-au logat in ultimele 60 de zile"

"Cate conturi sunt dezactivate in OU-ul Marketing?"

"Verifica daca utilizatorul john.doe este membru al grupului VPN-Users"

Modelul AI apelează automat funcțiile expuse de server (căutare LDAP), nu inventează răspunsuri — datele vin direct din AD.

Pasul 7 — Verificare log de audit al interogărilor

powershell
# Serverul MCP scrie un jurnal al tuturor interogarilor primite
Get-Content "C:\MCP-AD-Server\logs\queries.log" -Tail 20

Tip solutie

Permanent

Impact colateral

Toate interogările trec prin contul de serviciu — dacă acesta e compromis, expunerea se limitează la ce poate citi contul (nu poate scrie, dacă flag-ul rămâne false). Serverul MCP rulează local (stdio) — nu este expus în rețea în configurația de bază, ceea ce reduce suprafața de atac. Este esențial ca modelul AI folosit (local, prin LM Studio, sau extern) să fie de încredere: un prompt malițios ar putea încerca să convingă modelul să solicite date sensibile care sunt totuși accesibile prin contul de citire — verifică periodic jurnalul de interogări.

Voteaza

(2 din 3 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?