Was ist der API-Key (Schlüssel)?

Der API-KEY dient der Authentifizierung von Drittprogrammen zum Abruf von Daten.

Jedes Drittprogramm muss bei einem Datenabruf für jede VIA-Instanz einen uniquen Schlüssel übergeben. So kann VIA prüfen, welche Aufrufe von autorisierten Programmen stammen und welche nicht.

Nur autorisierten Programmen werden die angefragten Daten ausgeliefert.

Schlüssel

Einen floating Key erstellen.

Fließende Schlüssel (floating keys) sind sicherer als statische Keys, weil diese neben einem gemeinsamen Geheimnis, auch aus einer zeitbasierten Komponente bestehen. Gelangt ein Schlüssel an nicht berechtigte Personen, wird dieser den Schlüssel nicht mehr nutzen können, weil er automatisch invalide wird.

Der fließende Schlüssel setzt sich aus dem Hash-Wert einer festen Passwort-Phrase (gemeinsames Geheimnis) und einer variablen, zeitbasierten Komponente zusammen. Mit jedem Aufruf muss ein neuer Schlüssel generiert werden, der den Generierungs-Richtlinien von SLN entspricht.

Die Berechnung der variablen Komponente folgt dabei einem Muster, welches Drittanbietern nach Unterzeichnung eines NDA-Vertrags und bei Vorlage der Bestätigung, dass wir gemeinsame Kunden besitzen, mitgeteilt wird.

Die Passwort-Phrase ist gleichzeitig der Identifizierer, welcher Datenbank und Drittprogramm bei VIA mitteilt.

Sollte der Kunde einverstanden sein oder es technisch nicht anders möglich sein, kann auch auf die Berechnung der variablen Komponente verzichtet werden.

Einen statischen Key erstellen

Statische API-Keys sind eher der Standard aber weniger sicher. Gelangt der Key an Dritte, können Diese alle Endpunkte in VIA aufrufen, meist ohne, dass wir das mitbekommen.

Dennoch kann SLN einen statischen Schlüssel erstellen und den Drittanbietern bereitstellen. Dabei muss der Drittanbieter den Auftrag des gemeinsamen Kunden schriftlich vorlegen.

Einen Schlüssel generieren

Die Generierung von API-Schlüsseln erfolgt für jede VIA-Instanz separat und kann nur durch SLN vorgenommen werden. Laufen mehrere Datenbanken unter einer Instanz, muss zudem für jede Datenbank ein eigener Schlüssel generiert werden.

Generierte Schlüssel werden von SLN in einer Registry abgelegt und können nicht durch die App selbst erreicht oder verändert werden.

Sicherheit

Da jedes Drittprogramm für jede Instanz und für jede Datenbank eigene Schlüssel braucht, ist ein unbefugter Zugriff auf unterschiedliche Datenstämme ausgeschlossen.

Da die Generierung der Schlüssel neben einer festen Phrase noch eine variable Komponente besitzt, kann zudem kein Schlüssel durch Dritte missbraucht werden.

Gleichzeitig können API-Funktionen auf einzelne Schlüssel beschränkt werden oder von bestimmten Schlüsseln ausgeschlossen werden, wodurch selbst mit einem API-Zugriff bestimmte Funktionen beschränkt werden können.

Die Art der Schlüssel-Generierung wird zudem nur vertrauenswürdigen Partnern offengelegt. Gleichzeitig kann jeder API-Zugriff schnell und effektiv ausgeschlossen werden, sofern ein Missbrauch festgestellt wird.

Allerdings ist eine Schnittstelle nur zuverlässig geschützt, wenn die Drittprogramm-Anbieter sorgsam mit den Schlüsseln und deren Generierungsmethode umgehen.

Stellen wir einen Missbrauch fest, kann die Zusammenarbeit mit dem Drittprogramm-Anbieter ohne Ankündigung und Verzögerung beendet werden. Ab dann stehen die API-Funktionen nur noch als manueller Datei-Im- und Export bereit.