Skip to content

AI Pilot API

Maintained by: Zespół Aether365 Audience: Programiści Scope: Punkty końcowe remediacji AI Pilot - generowanie, przeglądanie i stosowanie automatycznych poprawek

AI Pilot zamienia nieudane wyniki ze skanów Compliance i Exposure w automatyczne poprawki. Przez API możesz wygenerować plan remediacji dla skanu, przejrzeć proponowane zmiany i zastosować te, które zatwierdzisz. Zastosowanie poprawki to zawsze wyraźne wywołanie, które wykonujesz samodzielnie: nic nie zostaje zmienione, dopóki o to nie poprosisz.

Wymagania

Punkty końcowe AI Pilot wymagają uprawnienia AI Pilot (Pro lub Enterprise) oraz połączenia Microsoft 365 powiązanego w trybie AI Pilot (write-consent). Połączenie tylko do odczytu może generować i odczytywać plany, ale nie może stosować poprawek. Gdy brakuje uprawnienia, wywołania zwracają 403 AUTH_INSUFFICIENT_SCOPE.

Lista kontroli z automatyczną remediacją

Zwraca identyfikatory kontroli, które AI Pilot potrafi naprawić automatycznie. Użyj tego, aby dla każdego wyniku zdecydować, czy dostępna jest automatyczna poprawka.

GET /tenants/me/remediation/capabilities

Przykładowa odpowiedź

json
{
  "success": true,
  "data": { "autoRemediableTestIds": ["AE.1068", "CIS.M365.5.1.2.3", "AE.1102"] }
}

Wygeneruj plan remediacji

Buduje plan remediacji dla ukończonego skanu: jedna pozycja na każdy możliwy do naprawienia nieudany wynik, z bieżącą wartością, proponowaną bezpieczną wartością oraz ustawieniem, którego dotyczy. Odczyt bieżącej wartości korzysta z zakresu odczytu połączenia AI Pilot; żadna zmiana nie jest zapisywana.

POST /tenants/me/scans/{scanId}/remediation-plan

Przykładowe żądanie

bash
curl -X POST https://api.aether365.io/tenants/me/scans/scan_abc123/remediation-plan \
  -H "Authorization: Bearer ak_live_..."

Przykładowa odpowiedź

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

Lista planów remediacji

Zwraca plany remediacji najemcy, od najnowszego, każdy wraz z jego pozycjami i zagregowanym statusem.

GET /tenants/me/remediation-plans

Wartości statusu planu

StatusZnaczenie
pendingWygenerowany, nic jeszcze nie zastosowano
completedWszystkie pozycje zastosowane i zweryfikowane
partially_appliedCzęść pozycji zastosowana, część nieudana lub oczekuje
failedNie udało się zastosować żadnej pozycji

Pobierz plan remediacji

GET /tenants/me/remediation-plans/{planId}

Zwraca pojedynczy plan (wraz z jego pozycjami) ograniczony do Twojego najemcy. Plan należący do innego najemcy zwraca 404 NOT_FOUND.


Zastosuj plan remediacji

Stosuje wybrane pozycje za pośrednictwem połączenia AI Pilot: każde ustawienie jest zapisywane przez Microsoft Graph, a następnie odczytywane ponownie, aby potwierdzić, że zmiana zadziałała. Pozycje, których nie wymienisz, pozostają nietknięte, a już zweryfikowana pozycja nigdy nie jest stosowana ponownie.

POST /tenants/me/remediation-plans/{planId}/apply

Treść żądania

PoleTypOpis
itemIdsstring[]Identyfikatory pozycji planu do zastosowania

Przykładowe żądanie

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"] }'

Przykładowa odpowiedź

Zwracany jest pełny plan z zaktualizowanym status każdej pozycji oraz, w przypadku niepowodzenia, polem error wyjaśniającym przyczynę.

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"
      }
    ]
  }
}

Wartości statusu pozycji

StatusZnaczenie
verifiedZastosowano i potwierdzono ponownym odczytem
appliedZastosowano; Microsoft nie potwierdził jeszcze propagacji (sprawdzane później)
failedNie udało się zastosować - zobacz error (np. brak zgody na zapis)
pendingNie zastosowano w tym wywołaniu

Zatwierdzenie przez człowieka jest zachowane

Nie ma skrótu "zastosuj wszystko". Wybierasz plan i dokładnie te pozycje, które mają zostać zastosowane, więc nawet zautomatyzowany przepływ pracy nadal pozostawia człowieka (lub świadomą decyzję) w pętli.

Czy ta strona była pomocna?