/ / Accesso automatico a più applicazioni Web: sicurezza, applicazioni Web, Single Sign-On

Accesso automatico a più applicazioni Web: sicurezza, applicazioni Web, single-sign-on

Ho un'applicazione web all'interno della quale sono presentimolte altre applicazioni web. Per utilizzarli l'utente deve autenticarsi inserendo username e password. Voglio che una volta che l'utente accede alla mia applicazione, dovrebbe accedere automaticamente all'altra applicazione.

Non voglio mantenere lo stesso nome utente e password per ogni applicazione, ma questa sarà la mia ultima risorsa.

Posso chiedere all'utente di autenticarsi per la prima volta, dopodiché la mia applicazione dovrebbe essere in grado di farlo.

Quale possibile approccio / opzioni ho in questo scenario.

La mia applicazione utilizza javascript sul lato client.

Grazie

risposte:

0 per risposta № 1

Vuoi creare qualcosa di simile StackExchange sistema di autenticazione. Puoi usare biscotti per salvare i dati in esso. e.g È possibile creare un cookie di accesso per una durata di circa 3 giorni. Significa che i tuoi utenti possono accedere per circa 3 giorni. I cookie non sono sicuri (specialmente per la memorizzazione di dati importanti come le password). Per proteggere i cookie puoi eseguire l'hashing dei tuoi dati. Ma anche facendo questo l'utente può cancellare i cookie dal browser; Oppure, se l'utente pulisce la cronologia del browser all'uscita, i cookie verranno eliminati.


Qui il web ha il codice per la creazione dei cookie:

HttpCookie loginCookie = new HttpCookie("LoginCookie");

Dopodiché puoi impostare la scadenza del cookie (durata):

loginCookie.Expires = DateTime.Now.AddDays(3);

E puoi inserire dati in esso:

loginCookie.Values.Add("password", "Hashed value of password here");

Per Disconnettersi: Crea pulsante e imposta questo codice in Evento clic:

 Response.Cookies["LoginCookie"].Expires = DateTime.Now.AddDays(-1);

È meglio usare le sessioni. Sono più al sicuro. Come creare sessioni:

 Session["Password"] = "Hashed value of password here";

E in pulsante di logout (Rimuovi tutte le sessioni):

Session.Abandon();

Rimozione di una sessione specifica:

Session.Remove("Password");