Sto usando i token JWT nelle intestazioni HTTP per autenticare le richieste a un server delle risorse. Il server di risorse e il server di autenticazione sono due ruoli di lavoro separati su Azure.
Non riesco a truccarmi se dovrei memorizzare le attestazioni nel token o collegarle alla richiesta / risposta in un altro modo. L'elenco delle attestazioni influisce sul rendering degli elementi dell'interfaccia utente lato client e sull'accesso ai dati sul server. Per questo motivo voglio assicurarmi che le richieste ricevute dal server siano autentiche e convalidate prima che la richiesta venga elaborata.
Esempi di affermazioni sono: CanEditProductList, CanEditShopDescription, CanReadUserDetails.
I motivi per cui voglio utilizzare il token JWT sono:
- Migliore protezione contro la modifica delle richieste da parte del cliente (ad esempio l'elenco delle richieste di pirateria informatica).
- Non è necessario cercare le attestazioni su ogni richiesta.
I motivi per cui non voglio utilizzare il token JWT:
- Il server di autenticazione deve conoscere l'elenco di attestazioni incentrato sull'app.
- Il token diventa un singolo punto di hack-entry.
- Ho letto alcune cose che dicono che i token JWT non sono destinati ai dati a livello di app.
Mi sembra che entrambi abbiano degli svantaggi, ma mi sto appoggiando all'inclusione di queste affermazioni nel token e voglio solo farlo funzionare da persone che hanno già avuto a che fare con questo.
NOTA: Userò HTTPS per tutte le richieste API, quindi mi sembra che il token sia "abbastanza" sicuro. Uso AngularJS, C #, Web API 2 e MVC5.