Da PreAuthentication a JWTAuthorization

1

Vorrei chiedere un problema su come ho progettato un flusso di sicurezza.

Il contesto

Ho una webapp progettata in due moduli web e server

  • Web : è un client a pagina singola, realizzato con Angular 1.5.5 (tra gli altri moduli). È una procedura guidata con 6 possibili stati (schermate). Il suo fornitore di dati sarà il modulo server .

  • Server : è un'API resto. Quale voglio che sia stateless . È realizzato con Spring MVC e Spring Security.

Fin qui tutto bene.

L'app lato client ( client da ora in poi) non può essere richiesta senza previa autorizzazione. Sono consentite solo fonti attendibili. Queste fonti imposteranno un hash in intestazioni o query stringa.

L'API responsabile della sicurezza è Spring. Finora, con un semplice PreauthFilter sono stato in grado di prendere hash dalla richiesta, convalidarlo e, in caso di OK, impostarlo come autenticato ( PreAuthenticationAuthenticatedToken ). Tuttavia il mio contesto di sicurezza primaverile è stateless e il contesto di sicurezza Spring non lo manterrà in nessuna sessione / titolare. A causa del client è una singola pagina, non ne ho bisogno dopo la convalida.

Una volta che il client sta funzionando (PreAuth è terminato con successo), ora è il momento di sbarazzarsi della sicurezza dell'API Rest.), che voglio sia anche stateless e vorrei implementare un JWT .

Ecco a cosa sto combattendo. Vorrei inviare 3 valori a client dopo il processo Preauth , per informare i client dei valori necessario per avviare tutto il protocollo JWT.

Di solito inizia con utente / password da una pagina di accesso. Ma devo iniziare da un PreAuth ...

L'unico modo in cui ho trovato di informare questi 3 valori è stato tramite un SucessfulAuthenticationHandler da cui ho impostato 3 cookie.

La domanda è:

  • C'è un altro modo per informare questi 3 valori, dopo PreAuth, invece dei cookie? ( Ho provato ad aggiungere intestazioni alla risposta, ma non so se avrò accesso alle intestazioni di risposta di Angular.In generale perché non è una richiesta Ajax ).

    Questi cookie hanno un massimo di 0, quindi dopo che la richiesta non è più disponibile (non voglio avere a che fare con i cookie scaduti). Ad ogni modo non mi sento totalmente a mio agio con loro.

  • Dovrei provare un altro approccio?

  • Che cosa suggeriresti?

posta Laiv 17.05.2016 - 23:12
fonte

0 risposte

Leggi altre domande sui tag