Ich verwende JWT-Token in HTTP-Headern, um Anforderungen an einen Ressourcenserver zu authentifizieren. Der Ressourcenserver und der Authentifizierungsserver sind zwei separate Arbeiterrollen in Azure.
Ich kann mich nicht entscheiden, ob ich die Ansprüche im Token speichern oder auf andere Weise an die Anfrage / Antwort anhängen soll. Die Anspruchsliste wirkt sich auf das Rendern clientseitiger Benutzeroberflächenelemente sowie auf den Zugriff auf Daten auf dem Server aus. Aus diesem Grund möchte ich sicherstellen, dass die vom Server eingegangenen Ansprüche authentisch und validiert sind, bevor die Anfrage bearbeitet wird.
Beispiele für Ansprüche sind: CanEditProductList, CanEditShopDescription, CanReadUserDetails.
Die Gründe, warum ich das JWT-Token für sie verwenden möchte, sind:
- Besserer Schutz vor clientseitiger Bearbeitung von Ansprüchen (z. B. Hacking Claims List).
- Es ist nicht erforderlich, die Ansprüche bei jeder Anfrage nachzuschlagen.
Die Gründe, warum ich das JWT-Token nicht verwenden möchte:
- Der Authentifizierungsserver muss dann die app-zentrierte Anspruchsliste kennen.
- Das Token wird zu einem einzigen Punkt des Hack-Eintrags.
- Ich habe einige Dinge gelesen, die besagen, dass JWT-Token nicht für Daten auf App-Ebene gedacht sind.
Es scheint mir, dass beide Nachteile haben, aber ich neige dazu, diese Behauptungen in das Token aufzunehmen und möchte dies nur von Leuten ausführen lassen, die sich zuvor damit befasst haben.
ANMERKUNG: Ich verwende HTTPS für alle API-Anforderungen, daher scheint mir das Token "sicher genug" zu sein. Ich benutze AngularJS, C #, Web API 2 und MVC5.