Sari la conținut

Device Agent API

Prezentare generală a agentului de dispozitiveAPI, protocolul JSON pus în aplicare numai în spatele agentului de dispozitivezebrabyte, care acoperă stările dispozitivului, URL-urile de bază și ciclul de viață al înscrierii.

Agentul de dispozitivAPIeste protocolul JSON utilizat de probo-agentPuteți implementa acest protocol pentru a înregistra dispozitive și a raporta postura de la sisteme de operare, aparate sau medii pe care agentul oficial nu le acceptă încă.

Dispozitivul inițiază fiecare cerere; platforma nu poate trimite comenzi, scripturi sau verifica definiții la acesta.

Adăugați /api/agent/v1 la originea implementării platformei în care a fost creat dispozitivul.

Deployment Base URL
US cloud https://us.probo.com/api/agent/v1
EU cloud https://eu.probo.com/api/agent/v1
Self-hosted https://probo.example.com/api/agent/v1

APIeste destinat agenților nativi, nu clienților browser-ului și nu expune accesul browser-ului de origine încrucișată.

Fiecare înregistrare a dispozitivului se mișcă printr-o mașină de stat mic. Numai Agentul dispozitivuluiAPIși revocarea administratorului schimbă aceste stări după creare.

State Meaning
PENDING Enrollment token issued; no successful heartbeat yet
ACTIVE Prima bătăi ale inimii a reușit; bătăile inimii și postura sunt permise
REVOKED Înregistrarea încheiată de un administrator sau de /unenroll

Primul succes /heartbeat activează un dispozitiv PENDING. /postures necesită ACTIVE.

Diagrama de secvență arată înscrierea, ritmul cardiac independent și programele de postură și cele două moduri în care se încheie înscrierea unui agent.

sequenceDiagram
  actor Admin as Organization administrator
  participant Probo as Probo server
  participant Agent as Device agent

  Admin->>Probo: Create device
  Probo-->>Admin: Server URL and one-shot enrollment token
  Admin->>Agent: Configure server URL and token

  Agent->>Probo: POST /enroll with token
  Probo-->>Agent: Device API key
  Agent->>Probo: POST /heartbeat with API key
  Probo-->>Agent: Device ID, heartbeat interval, posture interval, server time

  par Heartbeat schedule
    loop Every heartbeat_interval_seconds
      Agent->>Probo: POST /heartbeat with device identity
      Probo-->>Agent: Updated intervals and server time
    end
  and Posture schedule
    loop Every posture_interval_seconds
      Agent->>Agent: Run local posture checks
      Agent->>Probo: POST /postures with results
      Probo-->>Agent: 204 No Content
    end
  end

  alt Device is revoked
    Agent->>Probo: POST /heartbeat or /postures
    Probo-->>Agent: 401 Unauthorized
    Agent->>Agent: Stop reporting and delete API key
  else Agent is removed
    Agent->>Probo: POST /unenroll
    Probo-->>Agent: 204 No Content
    Agent->>Agent: Delete local credentials
  end

Intervalele de bătăi ale inimii și de postură sunt valori separate returnate de fiecare bătăi ale inimii reușite. Tratați fiecare ca pe un temporizator propriu. Serverul returnează metadatele de programare, dar nu trimite niciodată lucrări dispozitivului. ZebraByte Device Agent security Frontiera de securitate și modelul de amenințare.

  • Acceptați originea platformei și tokenul de înscriere ca intrări separate.
  • Necesită HTTPS în afara dezvoltării locale și respinge URL-urile serverului care conțin credențiale, șiruri de interogări sau fragmente.
  • Stochează cheia dispozitivuluiAPIîntr-un magazin secret corespunzător sistemului de operare sau într-un fișier care poate fi citit numai de contul de serviciu.
  • Puteți trimite Content-Type: application/json și Accept: application/json.
  • Identificați implementarea cu un User-Agent, cum ar fi my-probo-agent/1.0.0.
  • Trimiteți cu succes /heartbeat înainte de prima solicitare /postures.
  • Onorați intervalele returnate de fiecare bătăi ale inimii reușite ca temporizatori separați.
  • Batch nu mai mult de 100 de posturi rezultate într-o singură solicitare.
  • Nu înregistrați jetoane de înscriere, cheiAPIsau dovezi de postură sensibile.
  • La 401 Unauthorized după activare, opriți raportarea și ștergeți cheia dispozitivuluiAPI.

Utilizați agentul oficial ca referință de lucru atunci când implementați protocolul:

Preferați să contribuiți la agentul oficial atunci când schimbarea aparține binarului partajat. Contribuiți la platforma Agent pentru căile sursă, cerințele DCO și cronologia de revizuire a securității. Cererile de retragere care ating agentul dispozitivului pot dura mai mult pentru a fuziona, deoarece le revizuim pe scară largă pentru securitatea punctului final.

Dacă aveți nevoie de asistență mai devreme decât permite ciclul oficial de lansare, implementați acestAPIîn propriul agent.

Ultima actualizare: