Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Autenticazione centralizzata
lunedì 31 gennaio 2005 - 17.42
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
roby70
Profilo
| Newbie
30
messaggi | Data Invio:
lun 31 gen 2005 - 17:42
Ciao a tutti,
chiedo consulenza per la seguente problematica:
Mi hanno commissionato la realizzazione di un sistema di autenticazione proprietario centralizzato utilizzabile da più applicazioni.
Praticamente quando vado a digitare login e password per accedere ad una web application, devo andare ad interrogare un database degli account remoto che si trova in un server diverso da quello dove gira la web app in questione.
Se la combinazione di login e password digitati vengono trovati, deve tornarmi indietro (dal database degli account) la lista delle autorizzazioni per quell'utente per l'applicazione a cui si sta loggando.
Purtroppo non ho le idee molto chiare su come affrontare questa cosa; visto che il database degli account e delle autorizzazioni in teoria potrebbe trovarsi dovunque, avevo pensato ad un web-service ma non so se è l'unica possibilità.
Quello che chiedo è una panoramica sulle varie soluzioni che ci possono essere per questo tipo di problematica con i vari pro e contro di ognuna, magari anche dei link a qualche documento sull'argomento.
Voglio precisare che avevo pensato anche a Microsoft Passport, però chi ha commissionato il lavoro vuole una soluzione proprietaria e quindi l'ho scartato in partenza.
Grazie, Roby
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 31 gen 2005 - 19:18
>Voglio precisare che avevo pensato anche a Microsoft Passport, però chi ha commissionato il lavoro vuole una soluzione proprietaria e
>quindi l'ho scartato in partenza.
Passport è una soluzione proprietaria, di Microsoft però :)
A parte questo il problema dell'autenticazione unica è abbastanza rilevante oggi giorno. In qualsiasi realtà gli utenti si trovano a digitar mille password, la password del bios all'accensione, la password del sistema operativo, la password dell'as400, la password della posta, ecc.ecc.
Effettivamente il Passport era una buona soluzione, ma fuori dal controllo di chiunque e quindi non sempre buona.
Anche altri hanno sviluppato soluzioni simili ma non ho mai provato niente.
Se la soluzione devi proprio crearla tu però i Web Services sono un ottimo compromesso. Già di base riesci a creare rapidamente una soluzione ma perchè sia valida è necessario anche che i dati che passano siano protetti. Possono essere crittografati oppure può essere crittografato il canale su cui passano per esempio dal client al server di autenticazione. Puoi usare anche il .NET Remoting per esempio.
Poi non so, secodno me potresti anche appoggiarti all'autenticazione Windows se siete in un dominio NT Based.
Tanto dipende anche da quante e quali applicazioni devono autenticarsi in questo modo.
Insomma ci sono varie soluzione bisogna capire il vero contesto in cui verrà applicata.
ciao
david
roby70
Profilo
| Newbie
30
messaggi | Data Invio:
mar 1 feb 2005 - 12:09
Innanzitutto grazie; relativamente all'oggetto che riceverei in risposta ho un altro un dubbio, perchè le specifiche che mi hanno passato per fare questa cosa mi sembrano unpo' rigide e pesanti.
Praticamente ci sono n applicazioni che nella fase di login devono connettersi a questo database remoto centralizzato (accessibile da web-service ???) contenente tutti gli account di tutte le applicazioni; e già qui siamo in presenza di una tabella corposa perchè sia il numero degli accounts sia il numero delle applicazioni è destinato a crescere.
Oltre a questo nel database remoto devono esserci memorizzati per ogni account tutte le possibili autorizzazioni per ogni applicazione a cui quell'account è abilitato; quindi quando si fa il login non dovrebbe tornarmi indietro soltanto un ok ma tutta la lista delle autorizzazioni di quell'utente per quell'applicazione perchè altrimenti sarei costretto ad interrogare il servizio di autenticazione in ogni fase della navigazione per capire se sono abilitato a fare quella certa operazione, e non so utilizzando un web-service quanto possa essere performante.
Quindi se io mi faccio tornare tutte le informazioni di navigazione dal web-service una-tantum, nella fase di login, quello che mi viene restituito può essere corposo, poi da qualche parte me lo devo memorizzare perchè serve all'utente fino a quando non si disconnette, ma memorizzarlo in sessione non mi sembra conveniente.
La mia proposta era stata quella di mantenere centralizzati gli account, però una volta ricevuto l'ok i profili con tutte le autorizzazioni del caso memorizzarli nel db dell'applicazione anche perchè riguardano solo quella applicazione, non un altra; non mi sembra un bel disegno fondere tutti i profili di tutte le applicazioni in un unico db centralizzato, voi che ne pensate ? che alternative ci sono alla memorizzazione in sessione ?
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 1 feb 2005 - 22:20
Non fai prima a installare Citrix ? :)
Mi chiedo se hai la possibilità anche di modificare le applicazioni che dovranno usare questo repository centralizzato ?
Sicuramente non sarà un granchè fondere diritti e tutto il resto in un unico database ma se le specifiche sono queste bisogna seguirle.
Per quanto riguarda la tua preoccupazione sulla lentezza via WebService, sai che i dati possono essere spediti via XML o anche codificati in Binario e ancora magari compressi in zip o altro modo così riduci la dimensione da trasferire. Poi bisogna vedere se l'applicazione gira in una intranet o anche via Internet. Nel primo caso immagino tu sia dotato di una rete almeno a 100Mbit quindi anche se i diritti sono tanti il trasferimento dal server al client dei diritti ci mette pochissimo.
ciao
david
roby70
Profilo
| Newbie
30
messaggi | Data Invio:
gio 3 feb 2005 - 15:47
non ho ben capito la soluzione dell'httpmodule, puoi farmi un esempio ?
Grazie
roby70
Profilo
| Newbie
30
messaggi | Data Invio:
ven 4 feb 2005 - 08:59
ho letto il link sull'http module,interessante.
Però nel mio caso che vuol dire che "wrappa l'oggetto user" ? L'oggetto user in questo caso contiene soltanto i dati di autenticazione e l'httpmodule gli aggiunge i profili ? E' questo che intendevi dire ?
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 4 feb 2005 - 22:54
Si praticamente hai la possibilità di estendere l'oggetto User e da dentro l'applicazione avere già caricati direttamente tutti i ruoli e i diritti. Ma questo avviene per una applicazione ASP.NET. Diverso è il discorso se tu devi usare il sistema di autenticazione per altre applicazioni.
ciao
david
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !