Estoy usando tokens JWT en encabezados HTTP para autenticar solicitudes a un servidor de recursos. El servidor de recursos y el servidor de autenticación son dos roles de trabajo separados en Azure.
No puedo decidir si debo almacenar los reclamos en el token o adjuntarlos a la solicitud / respuesta de alguna otra manera. La lista de Reclamaciones afecta la representación de elementos de la IU del lado del cliente, así como el acceso a los datos en el servidor. Por este motivo, quiero asegurarme de que los reclamos recibidos por el servidor sean auténticos y validados antes de que se procese la solicitud.
Ejemplos de reclamos son: CanEditProductList, CanEditShopDescription, CanReadUserDetails.
Las razones por las que quiero usar el token JWT para ellos son:
- Mejor protección contra la edición de reclamos del lado del cliente (es decir, piratear la lista de reclamos).
- No es necesario buscar los reclamos en cada solicitud.
Las razones por las que no quiero usar el token JWT:
- El servidor de autenticación debe conocer la lista de notificaciones centrada en la aplicación.
- El token se convierte en un único punto de entrada de hack.
- He leído algunas cosas que dicen que los tokens JWT no están destinados a datos de nivel de aplicación.
Me parece que ambos tienen inconvenientes, pero me estoy inclinando hacia la inclusión de estas afirmaciones en el token y solo quiero ejecutar esto por personas que han tratado con esto antes.
NOTA: Usaré HTTPS para todas las solicitudes de API, por lo que me parece que el token será seguro 'suficiente'. Estoy usando AngularJS, C #, Web API 2 y MVC5.