Sto provando a creare un singolo segnale sul sistema che collega l'app da A a B e da B a A. Sfortunatamente, l'opzione per utilizzare OpenID / OAuth / SAML non è possibile al momento, quindi sto costruendo una soluzione di base da solo , ecco come va:
- L'utente accede all'App A
- L'utente fa clic sul link "Vai all'app B"
- Server per l'app A genera un token JWT contenente l'ID utente e la data di scadenza, salva un output con hash di questa stringa in una posizione condivisa (come Redis) e reindirizza all'endpoint di App B insieme al token
- App B hash il token che ha ricevuto e controlla se corrisponde all'hash che si trova nel database. Se corrisponde, verifica se il token è scaduto e rifiuta / accetta la richiesta in base alla valutazione.
- L'app B richiama l'app A insieme al token e un messaggio "SUCESS".
- L'app A esegue nuovamente il hashing del token e controlla nel database per vedere se i due hash corrispondono. In tal caso, l'App A emette un token di autenticazione temporaneo sul client.
- Per tutte le future richieste all'App B, l'App A passa il token temporaneo (che l'App B convalida con una chiave segreta) e l'App B garantisce la richiesta (se non è scaduta e rifiuta se scaduta)
Questo è l'approccio che è stato implementato e funzionale, ma volevo sapere quanto è sicura la logica. Vedi ovvi problemi di sicurezza con questa implementazione?