Ho lavorato a un progetto che integra microservizi basati su cloud primaverile e applicazioni MVC con SSO. al momento, utilizzo SpringSession per il servizio di repository di sessione. Il mio componente di login delle applicazioni correnti contiene un server di autenticazione per creare una sessione nel back-end e un client di frontend che chiama un tale servizio di accesso, funziona perfettamente. Ma quando esco da altre applicazioni, la mia strategia attuale è quella di reindirizzare alla pagina di disconnessione di questo componente di accesso e quindi inviare una chiamata Ajax al servizio di backend per impostare la sessione archiviata nel repository di sessione per scadere. Questo approccio funziona solo se l'utente viene reindirizzato correttamente al componente di accesso per effettuare il logout.
Ho pensato di chiamare il servizio di disconnessione direttamente dalle altre applicazioni invece di reindirizzare tutte le richieste di logout al componente di accesso, ma il lato negativo sarebbe per tutte le altre mie applicazioni, ho bisogno di implementare il servizio di disconnessione.
Quali sarebbero le strategie generali da utilizzare per garantire che la sessione utente venga disconnessa in un ambiente SSO che potrebbe ridurre al minimo la creazione di un servizio di disconnessione duplicato per ciascuna applicazione?