AI Pilot API
Поддържа се от: Aether365 Team Аудитория: Разработчици Обхват: Крайни точки на AI Pilot за отстраняване - генериране, преглед и прилагане на автоматизирани корекции
AI Pilot превръща неуспешните констатации от вашите Compliance и Exposure сканирания в автоматизирани корекции. Чрез API можете да генерирате план за отстраняване за дадено сканиране, да прегледате предложените промени и да приложите тези, които одобрите. Прилагането на корекция винаги е изрично извикване, което правите вие: нищо не се променя, докато не го поискате.
Изисквания
Крайните точки на AI Pilot изискват правото AI Pilot (Pro или Enterprise) и връзка с Microsoft 365, свързана в режим AI Pilot (write-consent). Връзка само за четене може да генерира и чете планове, но не може да прилага корекции. Извикванията връщат 403 AUTH_INSUFFICIENT_SCOPE, когато правото липсва.
Изброяване на автоматично отстранимите проверки
Връща идентификаторите на проверките, които AI Pilot може да коригира автоматично. Използвайте го, за да решите за всяка констатация дали е налична автоматизирана корекция.
GET /tenants/me/remediation/capabilitiesПримерен отговор
json
{
"success": true,
"data": { "autoRemediableTestIds": ["AE.1068", "CIS.M365.5.1.2.3", "AE.1102"] }
}Генериране на план за отстраняване
Изгражда план за отстраняване за завършено сканиране: по един елемент за всяка отстранима неуспешна констатация, всеки с текущата стойност, предложената сигурна стойност и настройката, която засяга. Четенето на текущата стойност използва обхвата за четене на връзката AI Pilot; не се записва никаква промяна.
POST /tenants/me/scans/{scanId}/remediation-planПримерна заявка
bash
curl -X POST https://api.aether365.io/tenants/me/scans/scan_abc123/remediation-plan \
-H "Authorization: Bearer ak_live_..."Примерен отговор
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
}
]
}
}Изброяване на планове за отстраняване
Връща плановете за отстраняване на наемателя, най-новите първи, всеки с елементите си и обобщен статус.
GET /tenants/me/remediation-plansСтойности на статуса на плана
| Статус | Значение |
|---|---|
pending | Генериран, все още нищо не е приложено |
completed | Всички елементи приложени и проверени |
partially_applied | Някои елементи приложени, някои неуспешни или още чакащи |
failed | Нито един елемент не можа да бъде приложен |
Получаване на план за отстраняване
GET /tenants/me/remediation-plans/{planId}Връща един план (с неговите елементи), ограничен до вашия наемател. План, който принадлежи на друг наемател, връща 404 NOT_FOUND.
Прилагане на план за отстраняване
Прилага избраните елементи чрез връзката AI Pilot: всяка настройка се записва през Microsoft Graph и след това се прочита отново, за да се потвърди, че промяната е влязла в сила. Елементите, които не изброите, остават недокоснати, а вече проверен елемент никога не се прилага повторно.
POST /tenants/me/remediation-plans/{planId}/applyТяло на заявката
| Поле | Тип | Описание |
|---|---|---|
itemIds | string[] | Идентификатори на елементите от плана за прилагане |
Примерна заявка
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"] }'Примерен отговор
Връща се целият план с актуализирания status на всеки елемент и при неуспех с error, който обяснява причината.
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"
}
]
}
}Стойности на статуса на елемента
| Статус | Значение |
|---|---|
verified | Приложен и потвърден чрез повторно четене |
applied | Приложен; Microsoft все още не е потвърдил разпространението (проверява се по-късно) |
failed | Не можа да бъде приложен: вижте error (напр. липсва write consent) |
pending | Неприложен в това извикване |
Човешкото одобрение е запазено
Няма пряк път "приложи всичко". Вие избирате плана и точните елементи за прилагане, така че дори автоматизиран работен процес запазва човека (или съзнателно решение) в цикъла.