AI Pilot API
Maintained by: Ομάδα Aether365 Audience: Προγραμματιστές Scope: Endpoints αποκατάστασης του AI Pilot - δημιουργία, αξιολόγηση και εφαρμογή αυτοματοποιημένων διορθώσεων
Το AI Pilot μετατρέπει τα αποτυχημένα ευρήματα από τις σαρώσεις Compliance και Exposure σε αυτοματοποιημένες διορθώσεις. Μέσω του API μπορείτε να δημιουργήσετε ένα σχέδιο αποκατάστασης για μια σάρωση, να αξιολογήσετε τις προτεινόμενες αλλαγές και να εφαρμόσετε όσες εγκρίνετε. Η εφαρμογή μιας διόρθωσης είναι πάντα μια ρητή κλήση που κάνετε εσείς: τίποτα δεν αλλάζει μέχρι να το ζητήσετε.
Προϋποθέσεις
Τα endpoints του AI Pilot απαιτούν το δικαίωμα AI Pilot (Pro ή Enterprise) και μια σύνδεση Microsoft 365 συνδεδεμένη σε AI Pilot (write-consent) mode. Μια σύνδεση μόνο για ανάγνωση μπορεί να δημιουργήσει και να διαβάσει σχέδια, αλλά δεν μπορεί να εφαρμόσει διορθώσεις. Οι κλήσεις επιστρέφουν 403 AUTH_INSUFFICIENT_SCOPE όταν λείπει το δικαίωμα.
Λίστα Ελέγχων με Δυνατότητα Αυτόματης Αποκατάστασης
Επιστρέφει τα IDs των ελέγχων που το AI Pilot ξέρει να διορθώνει αυτόματα. Χρησιμοποιήστε το για να αποφασίσετε, ανά εύρημα, αν υπάρχει διαθέσιμη αυτοματοποιημένη διόρθωση.
GET /tenants/me/remediation/capabilitiesΠαράδειγμα Απάντησης
json
{
"success": true,
"data": { "autoRemediableTestIds": ["AE.1068", "CIS.M365.5.1.2.3", "AE.1102"] }
}Δημιουργία Σχεδίου Αποκατάστασης
Δημιουργεί ένα σχέδιο αποκατάστασης για μια ολοκληρωμένη σάρωση: ένα στοιχείο ανά διορθώσιμο αποτυχημένο εύρημα, καθένα με την τρέχουσα τιμή, την προτεινόμενη ασφαλή τιμή και τη ρύθμιση που στοχεύει. Η ανάγνωση της τρέχουσας τιμής χρησιμοποιεί το read scope της σύνδεσης 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
}
]
}
}Λίστα Σχεδίων Αποκατάστασης
Επιστρέφει τα σχέδια αποκατάστασης του tenant, με τα πιο πρόσφατα πρώτα, καθένα με τα στοιχεία του και τη συγκεντρωτική κατάστασή του.
GET /tenants/me/remediation-plansΤιμές κατάστασης σχεδίου
| Status | Σημασία |
|---|---|
pending | Δημιουργήθηκε, τίποτα δεν έχει εφαρμοστεί ακόμη |
completed | Κάθε στοιχείο εφαρμόστηκε και επαληθεύτηκε |
partially_applied | Κάποια στοιχεία εφαρμόστηκαν, κάποια απέτυχαν ή εκκρεμούν |
failed | Κανένα στοιχείο δεν μπόρεσε να εφαρμοστεί |
Λήψη Σχεδίου Αποκατάστασης
GET /tenants/me/remediation-plans/{planId}Επιστρέφει ένα μεμονωμένο σχέδιο (με τα στοιχεία του) περιορισμένο στο tenant σας. Ενα σχέδιο που ανήκει σε άλλο tenant επιστρέφει 404 NOT_FOUND.
Εφαρμογή Σχεδίου Αποκατάστασης
Εφαρμόζει τα επιλεγμένα στοιχεία μέσω της σύνδεσης AI Pilot: κάθε ρύθμιση γράφεται μέσω του Microsoft Graph και στη συνέχεια διαβάζεται ξανά για να επιβεβαιωθεί ότι η αλλαγή τέθηκε σε ισχύ. Τα στοιχεία που δεν αναφέρετε παραμένουν ανέπαφα, και ένα ήδη επαληθευμένο στοιχείο δεν εφαρμόζεται ποτέ ξανά.
POST /tenants/me/remediation-plans/{planId}/applyΣώμα Αιτήματος
| Field | Type | Περιγραφή |
|---|---|---|
itemIds | string[] | IDs των στοιχείων του σχεδίου προς εφαρμογή |
Παράδειγμα Αιτήματος
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"
}
]
}
}Τιμές κατάστασης στοιχείου
| Status | Σημασία |
|---|---|
verified | Εφαρμόστηκε και επιβεβαιώθηκε με νέα ανάγνωση |
applied | Εφαρμόστηκε. Η Microsoft δεν έχει επιβεβαιώσει ακόμη τη διάδοση (ελέγχεται ξανά αργότερα) |
failed | Δεν μπόρεσε να εφαρμοστεί: δείτε το error (π.χ. λείπει το write consent) |
pending | Δεν εφαρμόστηκε σε αυτήν την κλήση |
Η ανθρώπινη έγκριση διατηρείται
Δεν υπάρχει συντόμευση "εφαρμογή όλων". Επιλέγετε εσείς το σχέδιο και τα ακριβή στοιχεία που θα εφαρμοστούν, ώστε μια αυτοματοποιημένη ροή εργασίας να διατηρεί πάντα έναν άνθρωπο (ή μια συνειδητή απόφαση) στη διαδικασία.