Uso JWT per gestire uno schema SSO in cui due sistemi (chiamiamoli A e B) richiedono entrambi l'autenticazione, ma l'archivio dati utente si trova in un solo sistema (diciamo A). Tutto ciò che ho visto su JWT coinvolge l'utente che registra nome utente / password per ricevere il JWT, ma quello che mi chiedo è se è sicuro restituire un JWT a un utente già registrato.
Per renderlo un po 'più concreto, il sistema di autenticazione A (esempio.com) utilizza un'autenticazione basata su cookie / sessione, ma il secondo sistema B (sottodominio.esempio.com) necessita dell'autenticazione da parte del JWT. Non vogliamo forzare gli utenti già registrati che hanno un cookie di sessione a inserire nuovamente username / password per ottenere un JWT, quindi pensiamo che implementeremo un endpoint API che restituisce un JWT a un utente che ha già effettuato l'accesso (tramite l'autenticazione della sessione), che l'utente può quindi autenticare con il sistema B. In particolare, utilizziamo il JWT di Django REST Framework, che offre la possibilità di creare manualmente il JWT: link
Quindi ad es. avremmo un endpoint API in cui è possibile GET https://systemA.com/api/gimme-jwt/
if user is already authed:
return JWT
else:
return 401
Ancora una volta, la differenza fondamentale tra questo e tutto ciò che ho visto è che stiamo restituendo un JWT a un utente che ha già effettuato l'accesso.