Single Sign-On con IdentityServer in ASP.NET

di Moreno Gentili, in ASP.NET,

Molto spesso, quando iniziamo lo sviluppo di una nuova applicazione web, ci troviamo a dover implementare da capo, ancora una volta, il servizio di autenticazione.

Ci sono situazioni in cui è effettivamente opportuno che l'applicazione disponga di un proprio database di utenti ma, in altri casi, specie in ambito intranet, è auspicabile che tutte le applicazioni web si avvalgano di un'unica piattaforma di autenticazione centralizzata. Grazie ad un meccanismo definito Single sign-on, gli utenti saranno così liberi di autenticarsi una sola volta per accedere a tutte le applicazioni web aziendali.

Se almeno una volta abbiamo provato ad implementare il Single Sign-on da soli, ci siamo accorti che il compito non è banale ed è propenso ad esporci a problemi legati di sicurezza, soprattutto se le applicazioni da proteggere sono dislocate geograficamente sulla rete Internet.

In nostro aiuto arriva IdentityServer, un progetto open source della .NET Foundation che si prefigge proprio lo scopo di facilitarci nell'implementare la sicurezza nelle nostre applicazioni .NET. E' costruito per essere un framework flessibile e personalizzabile, che può adattarsi a sistemi e database preesistenti.

Figura 1

IdentityServer supporta l'autenticazione mediante i protocolli standard OAuth2, WS-Security e, soprattutto, grazie adun'implementazione certificata di OpenID Connect è in grado in interoperare con vari dispositivi e tecnologie come applicazioni web, mobile e desktop.

Potenzialmente, anche le applicazioni scritte in PHP, Java e in altri linguaggi per il web saranno in grado di sfruttare IdentityServer ma l'effettiva semplicità (o la difficoltà) di questa integrazione dipenderà ovviamente dallaloro documentazione e dal supporto ai protocolli menzionati.

In questo articolo vedremo alcuni esempi di configurazione di IdentityServer ed andremo conoscere alcune delle sue parti costituenti e dei suoi punti di estendibilità.

Il Token Service

Un'applicazione basata su IdentityServer svolge la mansione del Token Service, ovvero un identity provider in grado di emettere token a seguito del corretto login degli utenti.

Possiamo immaginare un token come un "biglietto nominativo" da presentare all'ingresso di un'area riservata: l'applicazioneclient (anche detta relaying party) a fronte di un token valido, potrà estrarre informazioni sull'identità dell'utente, valutarle, ed autorizzarlo all'accesso.

Figura 2

Dopo il primo login, l'utente potrà accedere a tutte le altre applicazioni senza dover reimmettere username e password, saltando di fatto la fase 3. Si realizza così il Single Sign-On.

6 pagine in totale: 1 2 3 4 5 6
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Top Ten Articoli

Articoli via e-mail

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

In primo piano

I più letti di oggi

In evidenza

Misc