12.3 Authentifizierung (API-Keys)
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üsselgenerierung
Der Schlüssel setzt sich aus dem MD5-Hash-Wert einer festen Passwort-Phrase und einer variablen 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 einem festen Muster, welches Drittanbietern nach Unterzeichnung eines NDA-Vertrags 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 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 Instanz 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.