Zum Hauptinhalt springen

Übersicht

IDIAL stellt eine REST API bereit, über die sich der Bestand der angebundenen OPC UA Endpoints und ihrer Zertifikate verwalten lässt. Zusätzlich ermöglicht die API die Konfiguration von PKI- und EST-Integrationen, die Überwachung des Zertifikatslebenszyklus sowie die Steuerung der TLS-Einstellungen des IDIAL-Containers selbst. Die API wird durch APIFlask (Python) bereitgestellt und veröffentlicht automatisch eine OpenAPI-Spezifikation unter /openapi.json sowie eine interaktive Dokumentation unter /docs.

Basis-URL

Die Standard-Basis-URL der IDIAL REST API lautet:

http://127.0.0.1:5000

Der Host kann beim Start des Containers überschrieben werden. TLS lässt sich über POST /tls aktivieren. Sobald TLS aktiv ist, gilt folgendes Schema:

https://<host>:5000

Authentifizierung

Die meisten Endpoints erfordern einen API-Schlüssel, der als HTTP-Header übergeben wird:

X-API-Key: <your-api-key>

Der API-Schlüssel wird über die Datei secrets/idial_api_key.txt innerhalb des IDIAL-Containers konfiguriert. Alternativ kann die Umgebungsvariable IDIAL_API_KEY_FILE verwendet werden, um einen abweichenden Dateipfad anzugeben.

Endpoints ohne Authentifizierung

Die folgenden Endpoints sind ohne API-Schlüssel erreichbar:

  • GET /systeminfo
  • GET /tls

Content-Type

Alle Anfragen und Antworten verwenden Content-Type: application/json.

Fehlerformat

Tritt ein Fehler auf, gibt die API eine JSON-Antwort im folgenden Format zurück:

{
"error": "string"
}

Endpoint-Übersicht

Die folgende Tabelle listet alle 35 Endpoints der IDIAL REST API, gruppiert nach Kategorie.

hinweis

Die OpenAPI-Spezifikation ist unter /openapi.json abrufbar. Eine interaktive Swagger UI steht unter /docs zur Verfügung, solange IDIAL läuft.

KategorieMethodePfadAuth
SystemGET/systeminfoNein
SystemPOST/systeminfoJa
SystemGET/gds/systeminfoJa
SystemGET/crl/systeminfoJa
SystemGET/supported-devicesJa
TLS-KonfigurationGET/tlsNein
TLS-KonfigurationPOST/tlsJa
InventoryGET/inventoryJa
InventoryPOST/inventoryJa
InventoryPATCH/inventoryJa
InventoryGET/gds/inventoryJa
InventoryPOST/gds/inventoryJa
InventoryPATCH/gds/inventoryJa
InventoryGET/gds/inventory/{host_or_url}Ja
InventoryGET/ssh/inventoryJa
ZertifikatsüberwachungPOST/gds/monitor/crtJa
ZertifikatsüberwachungGET/gds/monitor/crt/{host_or_url}Ja
ZertifikatsüberwachungPOST/gds/inventory/crtJa
ZertifikatsüberwachungGET/gds/inventory/crt/{host_or_url}Ja
ZertifikatsüberwachungGET/gds/monitor/plc/{host_or_url}Ja
Trust ListPOST/gds/monitor/trustlistJa
Trust ListGET/gds/monitor/trustlist/{host_or_url}Ja
Trust ListDELETE/gds/monitor/trustlistJa
GDS PushPOST/gds/pushJa
GDS PushGET/gds/push/{host_or_url}Ja
GDS PushPOST/gds/push/changeJa
GDS FirmwarePOST/gds/firmwareJa
GDS FirmwareGET/gds/firmware/{host_or_url}Ja
GDS StatusGET/gds/status/{host_or_url}Ja
GDS Client-ZertifikatGET/gds/crtJa
PKIGET/pkiJa
PKIGET/pki/caJa
PKIGET/pki/crlJa
PKIPOST/pki/sign-client-csrJa
PKIPOST/pki/sign-server-csrJa