Skip to content

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

Σώμα Αιτήματος

FieldTypeΠεριγραφή
itemIdsstring[]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Δεν εφαρμόστηκε σε αυτήν την κλήση

Η ανθρώπινη έγκριση διατηρείται

Δεν υπάρχει συντόμευση "εφαρμογή όλων". Επιλέγετε εσείς το σχέδιο και τα ακριβή στοιχεία που θα εφαρμοστούν, ώστε μια αυτοματοποιημένη ροή εργασίας να διατηρεί πάντα έναν άνθρωπο (ή μια συνειδητή απόφαση) στη διαδικασία.

Σας φάνηκε χρήσιμη αυτή η σελίδα;