App
GrundlagenAPI-Key-Scopes
Grundlagen

API-Key-Scopes

Ein API-Key kann auf zwei Arten existieren: als globaler Key, der dem Mandanten gehört, oder als nutzergebundener Key, der einer konkreten Person gehört. Der Unterschied entscheidet darüber, was passiert, wenn diese Person das Unternehmen verlässt.

#Der Unterschied in einem Absatz

Ein globaler Key trägt exakt die Scopes, die beim Anlegen ausgewählt wurden — dauerhaft. Ein nutzergebundener Key trägt die Schnittmenge aus seinen Scopes und den aktuellen Berechtigungen seiner Eigentümerin oder seines Eigentümers, bei jedem Request neu ausgewertet. Er kann also nie mehr gewähren, als die Person selbst gerade darf.

#Warum es zwei Arten gibt

Anfangs war jeder Key mandantenweit. Für Monitoring-Agents und CI-Jobs passt das. Für Keys, die die Automatisierung einer Person abbilden, entstehen daraus zwei bekannte Probleme:

  1. Geist-Berechtigungen — jemand verlässt das Unternehmen, das Konto wird deaktiviert. Der persönliche API-Key läuft trotzdem weiter, bis ihn jemand von Hand widerruft. Genau dieser Widerruf wird beim Offboarding gern übersehen
  2. Veraltete Momentaufnahmen — ein Key wurde mit Schreibrecht angelegt. Monate später wurde die Person auf Lesezugriff zurückgestuft — der Key schreibt weiterhin

Nutzergebundene Keys lösen beides, weil sie die Berechtigungen live auswerten statt sie einzufrieren.

#Wie die Schnittmenge entsteht

Bei jedem Request prüft Uslimato in dieser Reihenfolge:

  1. Ist das Konto der Eigentümerin oder des Eigentümers aktiv? Wenn nein, endet der Request hier
  2. Welche Berechtigungen hat diese Person aktuell?
  3. Diese Berechtigungen werden auf API-Scopes abgebildet
  4. Der wirksame Scope ist die Schnittmenge aus den Scopes des Keys und den aufgelösten Scopes der Person

Fehlt der benötigte Scope in der Schnittmenge, antwortet die API mit 403 INSUFFICIENT_SCOPE.

#Abbildung von Berechtigungen auf Scopes

BerechtigungErgibt die API-Scopes
adminAlle Scopes
assets:writeassets:read, assets:write
assets:useassets:read
users:manageusers:read, users:write
processes:manageprocesses:read, processes:write
processes:useprocesses:read
tickets:manage, tickets:admintickets:read, tickets:write
tickets:create, tickets:closetickets:read

#Wie schnell Änderungen wirken

Berechtigungen werden bis zu 60 Sekunden zwischengespeichert. Ändert sich eine Gruppenmitgliedschaft oder eine Gruppenberechtigung, wird der Zwischenspeicher sofort erneuert — der Entzug wirkt dann beim nächsten Request.

Achtung
Plane bei einem Offboarding trotzdem mit dieser Minute. Ein nutzergebundener Key verliert seinen Zugriff spätestens 60 Sekunden nach der Deaktivierung des Kontos — nicht in derselben Sekunde. Wo es auf Sofortigkeit ankommt, widerrufe den Key zusätzlich ausdrücklich.

#Wer welchen Key anlegen darf

Der Scope-Typ hat keinen Standardwert — er muss beim Anlegen immer ausdrücklich gewählt werden.

Wer legt anTypFür wenErgebnis
Beliebig*nicht angegeben*400 SCOPE_REQUIRED
AdministrationglobalAngelegt
Administrationglobaleine Person400 VALIDATION_ERROR
Ohne Adminrechtglobal403 GLOBAL_KEY_ADMIN_ONLY
AdministrationnutzergebundenMitglied des MandantenAngelegt
AdministrationnutzergebundenPerson aus fremdem Mandanten400 INVALID_USER
Ohne Adminrechtnutzergebundensich selbstAngelegt
Ohne Adminrechtnutzergebundenjemand anderen403 FORBIDDEN

Ob Personen ohne Adminrecht überhaupt eigene Keys anlegen dürfen, steuert eine Einstellung pro Mandant — siehe Admin-Modus.

#Was mit einem Key passiert

EreignisWirkung auf einen nutzergebundenen Key
Person aus einer Gruppe entferntWirksamer Scope schrumpft innerhalb von 60 Sekunden
Konto deaktiviertDer nächste Request wird abgelehnt
Konto gelöschtDer Key wird automatisch entfernt
Key ausdrücklich widerrufenDer Key ist sofort deaktiviert

#Welchen Typ wann

Global, wenn der Key einen Dienst darstellt und keine Person — CI, Backups, Monitoring —, wenn er weiterlaufen soll, auch wenn jemand geht, oder wenn die Integration bewusst einen breiten, rollenunabhängigen Zugriff braucht.

Nutzergebunden, wenn der Key die Automatisierung einer Person ist, wenn er Rollenwechseln automatisch folgen soll, oder wenn ein Offboarding den Key ohne Zusatzschritt mit erledigen soll.

Tipp
Im Zweifel nutzergebunden. Der Fall „vergessener Key einer ausgeschiedenen Person" tritt in der Praxis deutlich häufiger auf als der Fall, in dem ein globaler Key wirklich nötig ist.
Hat dir das geholfen?
Etwas verbessern