AI Pilot API
Întreținut de: Aether365 Team Public țintă: Dezvoltatori Domeniu: Puncte finale AI Pilot pentru remediere - generarea, revizuirea și aplicarea de corecții automate
AI Pilot transformă constatările eșuate din scanările Compliance și Exposure în corecții automate. Prin API puteți genera un plan de remediere pentru o scanare, revizui modificările propuse și aplica pe cele pe care le aprobați. Aplicarea unei corecții este întotdeauna un apel explicit pe care îl faceți: nimic nu se schimbă până nu cereți acest lucru.
Cerințe
Punctele finale AI Pilot necesită dreptul AI Pilot (Pro sau Enterprise) și o conexiune Microsoft 365 asociată în modul AI Pilot (write-consent). O conexiune doar pentru citire poate genera și citi planuri, dar nu poate aplica corecții. Apelurile returnează 403 AUTH_INSUFFICIENT_SCOPE atunci când dreptul lipsește.
Listarea verificărilor remediabile automat
Returnează identificatorii verificărilor pe care AI Pilot știe să le corecteze automat. Folosiți-l pentru a decide, per constatare, dacă este disponibilă o corecție automată.
GET /tenants/me/remediation/capabilitiesExemplu de răspuns
json
{
"success": true,
"data": { "autoRemediableTestIds": ["AE.1068", "CIS.M365.5.1.2.3", "AE.1102"] }
}Generarea unui plan de remediere
Construiește un plan de remediere pentru o scanare finalizată: câte un element pentru fiecare constatare eșuată care poate fi corectată, fiecare cu valoarea curentă, valoarea sigură propusă și setarea pe care o vizează. Citirea valorii curente folosește domeniul de citire al conexiunii AI Pilot; nu se scrie nicio modificare.
POST /tenants/me/scans/{scanId}/remediation-planExemplu de cerere
bash
curl -X POST https://api.aether365.io/tenants/me/scans/scan_abc123/remediation-plan \
-H "Authorization: Bearer ak_live_..."Exemplu de răspuns
json
{
"success": true,
"data": {
"id": "plan_abc123",
"scanId": "scan_abc123",
"msTenantId": "00000000-0000-0000-0000-000000000000",
"status": "pending",
"createdAt": "2026-06-17T09:00:00Z",
"items": [
{
"id": "item_1",
"testId": "AE.1068",
"coveredTestIds": ["AE.1068", "CIS.M365.5.1.2.3"],
"actionKey": "require_mfa_admins",
"title": "Require MFA for administrator roles",
"settingKey": "conditionalAccess.requireMfaAdmins",
"currentValue": false,
"proposedValue": true,
"status": "pending",
"appliedBy": null,
"appliedAt": null,
"error": null
}
]
}
}Listarea planurilor de remediere
Returnează planurile de remediere ale chiriașului, cele mai noi primele, fiecare cu elementele sale și starea cumulată.
GET /tenants/me/remediation-plansValori de stare a planului
| Stare | Semnificație |
|---|---|
pending | Generat, nimic aplicat încă |
completed | Toate elementele aplicate și verificate |
partially_applied | Unele elemente aplicate, altele eșuate sau încă în așteptare |
failed | Niciun element nu a putut fi aplicat |
Obținerea unui plan de remediere
GET /tenants/me/remediation-plans/{planId}Returnează un singur plan (cu elementele sale) limitat la chiriașul dumneavoastră. Un plan care aparține altui chiriaș returnează 404 NOT_FOUND.
Aplicarea unui plan de remediere
Aplică elementele selectate prin conexiunea AI Pilot: fiecare setare este scrisă prin Microsoft Graph și apoi recitită pentru a confirma că modificarea a intrat în vigoare. Elementele pe care nu le listați rămân neatinse, iar un element deja verificat nu este niciodată reaplicat.
POST /tenants/me/remediation-plans/{planId}/applyCorpul cererii
| Câmp | Tip | Descriere |
|---|---|---|
itemIds | string[] | Identificatorii elementelor planului de aplicat |
Exemplu de cerere
bash
curl -X POST https://api.aether365.io/tenants/me/remediation-plans/plan_abc123/apply \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{ "itemIds": ["item_1", "item_2"] }'Exemplu de răspuns
Este returnat planul complet, cu status-ul actualizat al fiecărui element și, în caz de eșec, un error care explică motivul.
json
{
"success": true,
"data": {
"id": "plan_abc123",
"status": "partially_applied",
"items": [
{
"id": "item_1",
"title": "Require MFA for administrator roles",
"status": "verified",
"appliedAt": "2026-06-17T09:05:00Z",
"error": null
},
{
"id": "item_2",
"title": "Disable legacy authentication",
"status": "failed",
"error": "Write consent is missing or has expired"
}
]
}
}Valori de stare a elementului
| Stare | Semnificație |
|---|---|
verified | Aplicat și confirmat printr-o recitire |
applied | Aplicat; Microsoft nu a confirmat încă propagarea (reverificat ulterior) |
failed | Nu a putut fi aplicat: vedeți error (de ex. lipsește write consent) |
pending | Neaplicat în acest apel |
Aprobarea umană este păstrată
Nu există o scurtătură de tip "aplică tot". Alegeți planul și elementele exacte de aplicat, astfel încât un flux de lucru automatizat păstrează în continuare un om (sau o decizie deliberată) în buclă.