Backend, APIs & Daten · Gemischt

Authentifizierung und Autorisierung: wer du bist und was du darfst

In einem Satz: Identität und Autorisierung sind zwei getrennte Fragen, und die meisten Verstöße kommen davon, dass die zweite in der Oberfläche und nicht im Server geprüft wird.

Trennung

Authentifizierung beantwortet, wer der Nutzer ist. Autorisierung beantwortet, ob er die Aktion an der Ressource ausführen darf. Einen Knopf in der Oberfläche zu verbergen ist keine Autorisierung — jede Anfrage kann direkt gesendet werden.

Die Regel: Jede Route prüft die Autorisierung an der konkreten Ressource, nicht nur, dass der Nutzer angemeldet ist.

Praktische Modelle

Nach Rollen — einfach, für die meisten Systeme genug. Nach Eigentum und Zugehörigkeit — nötig, wenn Nutzer nur die Daten ihrer Organisation sehen. Nach detaillierter Richtlinie — mächtig und teuer in der Wartung, und nur wenn wirklich nötig.

Beginnen Sie einfach und dokumentieren Sie die Regeln an einer Stelle im Code, nicht über zwanzig Prüfungen verstreut.

Token

Ein kurzer Ablauf für ein Zugriffstoken, ein widerrufbares Auffrischtoken und eine Sperrliste für Abmeldeereignisse. Halten Sie serverseitig genug, um den Zugang sofort zu widerrufen — eine Fähigkeit, die genau an dem Tag gebraucht wird, an dem keine Zeit ist, sie zu bauen.

Im Detail

Die häufigste Gefahr ist der direkte Zugriff auf eine Ressource per Kennung: das Vertauschen einer Zahl in der Adresse, die die Daten eines anderen zurückgibt. Prüfen Sie das systematisch auf jeder Route, die eine Kennung erhält, und fügen Sie einen automatischen Test hinzu, der versucht, über Nutzer hinweg zuzugreifen.