3

So habe ich versucht, in einer SPA-App Best Practices herauszufinden, wie man Autorisierung, nicht Authentifizierung, angehen kann.Autorisierung in einer SPA oder Client-Seite App

Angenommen, ich habe eine Client-Seite MVC (eckig, vuejs, etc ..) mit einem API-Backend, wie verwalten wir die Verwendung von Berechtigungen für die App?

Zum Beispiel können ein Benutzer und ein Manager beide zugreifen, aber einer hat mehr Zugriff (Funktionen in einer Ansicht) als der andere. Wenn sie beide dieselbe Benutzeroberfläche auf der Client-Seite verwenden, wie schützen und rendern Sie die richtige Ansicht entsprechend ihrem Zugriff? Es gibt die Möglichkeit, eine Liste ihrer Rollen/Ansprüche zu erhalten und basierend darauf festzulegen, was auf der Client-Seite gerendert werden soll, aber da dies auf JS basiert, kann es leicht umgangen werden.

Es klingt für mich, dass eine Client-Seite MVC-App möglicherweise nicht die richtige Lösung und eine SSR-App ist mehr dafür geeignet. Wenn das der Fall ist, wie wäre es mit dem mobilen Fall? Wie löst man das gleiche Problem für das Handy, ohne eine eigene native App entwickeln zu müssen?

+1

Eine andere Frage: Wenn Sie eine Client-seitige App erstellen, wie können Autorisierungsregeln am besten nachverfolgt werden? Holst du sie alle auf einmal, speichere sie lokal oder du meldest einen API-Aufruf, um nach jeder Regel zu suchen? Best Practices aus einer Sicherheits- und Effizienz-Punkte? – mghz

Antwort

0

Das ist eine sehr gute Frage, die mir auch schon lange in Erinnerung geblieben ist. Und ich weiß nicht, warum das niemand beantwortet hat. Ich las einige Artikel und Tutorials zu diesem und in allen von ihnen schlugen sie die gleiche Sache, die Sie erwähnt:

„bekommen eine Liste ihrer Rollen/Forderungen und auf dieser Grundlage festzustellen, was auf der Client-Seite zu machen "

Und wie Sie auch erwähnt, kann es sein, umgangen aber ich denke, da wird Genehmigung auch auf serverseitige, dann ganz gleich getan werden, wie der Benutzer Stampfer mit der Front-End-JS (zum Beispiel mit Hilfe der Browser-Dev-Tools), er/sie kann nicht pa ss der Autorisierungsschutz. Zum Beispiel sie möglicherweise löschen Button für alle Kommentare (andere als ihre eigenen Kommentare), aber nachdem sie auf die Schaltfläche zum Löschen auf andere Benutzer Kommentar klicken. Der Server autorisiert die Löschaktion wegen der serverseitigen Berechtigung nicht. So scheint es, dass der Ansatz, den Sie erwähnten, echt ist.