in

dotNet Umbria

Il primo User Group in Umbria sul mondo .Net
Latest post 05-16-2008 10:52 AM by pomarc. 2 replies.
Page 1 of 1 (3 items)
Sort Posts: Previous Next
  • 05-14-2008 8:37 PM

    Autenticazione su applicazioni diverse

    Ciao a tutti,

    Mi sapreste dire quale potrebbe essere l'idea di base per permettere ad un utente di loggare una sola volta e di lavorare su applicazioni ASP.NET diverse e magari collocate su server diversi?

    L'applicazione B che viene chiamata (per esempio tramite un link) dall'applicazione A, come fa a condividere le informazioni di login dell'utente ???

    Grazie

    Daniele

  • 05-15-2008 10:04 AM In reply to

    Re: Autenticazione su applicazioni diverse

    Sul "Single Sign On" c'è parecchio in letteratura (se cerchi con Google trovi ad esempio alcune implementazioni fatte sul Membership di default di Asp.Net 2.0). Una possibile soluzione al tuo problema e' farti "in casa" una sorta di auth-service. Un servizio (web service) cui sia demandata l'autenticazione e, opzionalmente, anche la gestione dei permessi utenti. Quest'ultima potrebbe risiedere anche nei diversi contesti ed essere associata alle credenziali che risiedono invece sul server di auth.
    La delicatezza di un tale approccio sta nella sicurezza della comunicazione tra  un server ed un altro, ovvero cautelarsi da eventuali tentativi di spoofing che potrebbero intercettare le comunicazioni ed appropriarsi delle credenziali. Per ovviare questo potresti utilizzano ad esempio dei token, opportunamente criptati, con una scadenza temporale stretta, oppure proteggere il canale con l'https.

    L'argomento è sicuramente interessante e potrebbe meritare un approfondimento, chissà che non valga la pena proporlo per un eventuale futuro evento sulla sicurezza (o anche un piu' informale "aperitivo .NetUmbria").

    Spero sia stato utile,

    Andrea

    Andrea Cruciani

    Filed under:
  • 05-16-2008 10:52 AM In reply to

    Re: Autenticazione su applicazioni diverse

     Mi è capitato di dover implementare un sistema di SSO per un cliente. I requisiti erano divertenti, perché alle applicazioni (asp classico e aspnet) dovevano poter accedere sia utenti in LAN con autenticazione AD integrata, sia utenti esterni che però accedevano con autenticazione applicativa in uno dei siti della rete, sia utenti provenienti da un portale esterno, senza autenticazione "apparente", ovvero essendosi autenticati sul portale esterno, non dovevano vedere altre richieste di password.

    Il tutto è stato risolto, come diceva andrea, con un web service che da un lato produce  un token criptato, collegato all'applicazione desiderata, con scadenza temporale, e dall'altro fornisce delle API per permettere alle applicazioni di verificare se un dato token è valido per quell'ora, quell'applicazione e in alcuni casi per quell'utente.

    Le applicazioni di entrata (e solo loro) richiedono il token nel momento  in cui l'utente vuole accedere ad un'altra applicazione. Questo token è passato nella richiesta di accesso, e l'applicazione target fa entrare l'utente dopo aver controllato la validità del token e i diritti a questo associati.

    Per problemi di NAT non si è potuto legare il token all'ip di partenza dell'utente, ma ragionandoci sopra, utilizzando https e password challenge-response e regole sulla provenienza delle chiamate al WS, l'applicazione è ragionevolmente sicura e funziona correttamente.

      

Page 1 of 1 (3 items)
dotNet Umbria 2007-2008
Powered by Community Server (Commercial Edition), by Telligent Systems