You are here:   Blog
Registrazione   |  Login

Search Writings....

SnowCovered Ads

apr 15

Inviato da: Alberto Velo
15/04/2010 11.53 

Vediamo quali siano i metodi di autenticazione disponibili in DotNetNuke, e come sia possibile configurare una soluzione di Single Sign On.

Provider di autenticazione

DotNetNuke adotta il modello dei provider per gestire l’autenticazione degli utenti: a seconda del o dei provider abilitati su di un portale, è cioè possibile fare in modo che gli utenti di quel portale siano autenticati con differenti modalità.

 

Provider standard

Il metodo standard di autenticazione di DotNetNuke si appoggia alle funzionalità del framework ASP.NET di gestione della Membership, memorizzando i dati (account utente, ruoli, appartenenza ai ruoli) nel database SQL locale. In questo caso l’autenticazione è locale al portale, cioè non è condivisa con altri portali o applicazioni.

Configurazione provider standard Form di Login standard

 

Provider Active Directory

Il provider di autenticazione Active Directory (http://dnnauthad.codeplex.com/) implementa il supporto per l’autenticazione degli utenti presso un dominio Active Directory, e viene tipicamente utilizzato in ambito Intranet: esso gestisce infatti l’autenticazione integrata Windows (si veda http://en.wikipedia.org/wiki/Integrated_Windows_Authentication), riconoscendo automaticamente gli utenti loggati sul dominio che possono, dunque, accedere alla web application senza dover nuovamente digitare login e password.

In questo caso DNN mantiene una cache locale del profilo utente, che può essere sincronizzato automaticamente con i dati memorizzati in AD nel momento dell’accesso, ma delega il processo di autenticazione, appunto, ad Active Directory.

 adsettings

In base alla configurazione di Active Directory, l’autenticazione può riguardare i soli utenti di un site AD piuttosto che estendersi ai livelli superiori (forest, tree o domain) della gerarchia:

A Site object in Active Directory represents a physical geographic location that hosts networks. […]

The Active Directory framework that holds the objects can be viewed at a number of levels. At the top of the structure is the forest. The forest is a collection of every object, its attributes, and rules (attribute syntax) in the Active Directory. The forest, tree, and domain are the logical parts in an Active Directory network.

The Active Directory forest contains one or more transitive, trust-linked trees. A tree is a collection of one or more domains and domain trees, again linked in a transitive trust hierarchy[…]

Per ulteriori dettagli si veda la pagina http://en.wikipedia.org/wiki/Active_Directory_Service_Interfaces.

 

Provider OpenID

Questo provider di autenticazione (http://dnnauthopenid.codeplex.com) consente di accedere ad un portale DNN utilizzando credenziali censite nel sistema decentralizzato OpenID, che sostanzialmente consente di utilizzare un unico set di credenziali, memorizzate esclusivamente presso un “identity provider”, per accedere a molteplici siti web (http://openid.net/get-an-openid/what-is-openid).

Configurazione Provider OpenID Accesso tramite OpenID

 

Una volta attivato un proprio profilo OpenID presso un identity provider (per esempio Google, Facebook, Yahoo!, Microsoft, Telecom Italia ed altri, cfr http://openid.net/get-an-openid/) ci si vedrà assegnare un OpenID personale, ovvero una URL da digitare come unico parametro di accesso. Il processo di autenticazione verrà dunque gestito presso il proprio identity provider, che dopo la verifica di identità redirigerà l’utente verso il sito cui si è richiesto di accedere, cui al primo accesso verranno comunicati automaticamente i dati personali che si è scelto di condividere (http://openid.net/get-an-openid/start-using-your-openid/) con esso.

Nota: Tra i vari identity provider segnaliamo Google, che tramite la URL http://openid-provider.appspot.com/ consente di ottenere rapidamente un OpenID da associare ad un account Google esistente.

 

Provider LiveID

Questo provider (http://dnnauthliveid.codeplex.com) abilita un sito DotNetNuke all’autenticazione degli utenti tramite un Windows Live ID: disponendo di un account Microsoft Windows Live, che si ottiene registrandosi per esempio su live.com (ora bing.com) o su msn.com, si ottengono credenziali che è poi possibile utilizzare per accedere anche ad altri siti, per mezzo di un meccanismo di SSO che consente – in modo simile a quanto accade con un account OpenID – di autorizzare l’utilizzo delle credenziali assegnate per accedere a molteplici siti.

Configurazione provider LiveID Accesso tramite LiveID

 

Provider CardSpace

Questo provider implementa un sistema di autenticazione distribuita simile ad OpenID, a differenza del quale (standard open) si apoggia ad un sistema proprietario (Windows CardSpace, cfr http://en.wikipedia.org/wiki/Windows_CardSpace).

Nel momento in cui scriviamo il provider non è ancora stato aggiornato per funzionare con DotNetNuke 5 (cfr http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryId/2131/DNN-5-and-get_ModuleSettings-When-Login-is-Clicked.aspx).

 

Provider multipli

Come intuibile dalle immagini su proposte, DotNetNuke consente di abilitare o disabilitare a piacimento ogni singolo provider di autenticazione, adattando automaticamente il form di login che mostrerà agli utenti, qualora siano abilitati più di un provider di autenticazione, i pulsanti che gli consentiranno di selezionare il provider desiderato.

tmp350D tmpFD2E 

 

E’ altresì ovvio che sia possibile sviluppare in proprio, o personalizzare partendo da codice esistente, ulteriori provider di autenticazione che gestiscano l’autenticazione appoggiandosi a differenti servizi o repository di utenti: per esempio sono disponibili, a pagamento o gratuitamente, soluzioni per l’autenticazione presso database (http://www.snowcovered.com/Snowcovered2/product/Modules/External-Database-Authentication-Provider-300/id/16487) o servizi (http://oliverhine.com/DotNetNuke/Providers/TwitterAuthenticationProvider.aspx) esterni, o per l’utilizzo di meccanismi di autenticazione forte (http://dnnmultifactor.codeplex.com, per esempio con certificati X.509) che, pur non abilitando il Single Sign On, consentono di disegnare scenari di autenticazione condivisa con applicazioni esterne (nei quali cioè gli utenti utilizzano le stesse credenziali per differenti applicazioni, ma devono effettuare il login su ognuna – a meno che si sia abilitato un qualche meccanismo di condivisione delle sessioni –).

 

Condivisione degli utenti

I provider di autenticazione descritti, con l’eccezione di quello standard, consentono di disegnare scenari di autenticazione di livello enterprise, con funzionalità di Single Sign On: l’utente, qualora già autenticato presso il servizio esterno (Active Directory, OpenID o LiveID) non deve presentare nuovamente le proprie credenziali per ottenere l’accesso al portale DotNetNuke.

Simili funzionalità sono assicurate, ma limitatamente ai portali ospitati da uno stesso host DotNetNuke, per mezzo di moduli applicativi come il “Multi Portal Users Sharing” di DNNMasters (http://www.dnnmasters.com/products-services/dnn-modules/multi-portal/mpus-x), che consente di stabilire con precisione quali aree, quali ruoli e quali account utente debbano essere condivisi tra i portali di un’installazione (host) DotNetNuke. Si tratta in ogni caso di un tipo di soluzione che non può prescindere dall’utilizzo di uno o più provider di autenticazione, cui deve appoggiarsi per la verifica delle autorizzazioni.

 

Link utili

http://en.wikipedia.org/wiki/Single_sign-on

http://blog.theaccidentalgeek.com/post/2009/07/13/DotNetNuke-Tips-and-Tricks-12-Creating-your-own-Authentication-Provider.aspx

http://oliverhine.com/DotNetNuke/Providers/TwitterAuthenticationProvider.aspx

http://oauth.net/

http://www.snowcovered.com/Snowcovered2/product/Modules/External-Database-Authentication-Provider-300/id/16487

http://blogs.law.harvard.edu/brandonhaynes/2009/05/01/dotnetnuke-multi-factor-authentication-provider/

http://dnnmultifactor.codeplex.com/

http://weblogs.com.pk/khurram/archive/2006/11/01/6261.aspx

http://www.engagesoftware.com/Blog/EntryId/41/Building-your-own-Membership-Provider-for-DotNetNuke-and-ASP-NET-2-0.aspx

http://www.hilbertsolutions.com/Products/Dotnetnuke_Novell_Authentication_Provider.aspx

http://dnnldap.codeplex.com

http://en.wikipedia.org/wiki/Active_Directory_Service_Interfaces

powered by metaPost

Tags:

Il tuo nome:
Your email:
(Optional) Email used only to show Gravatar.
Your website:
Titolo:
Commento:
Aggiungi Commento   Annulla