Authentifizierung und Autorisierung: wer du bist und was du darfst
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.