Single Sign On 1/3

Da un post davvero interessante, mi permetto di parlare di SSO:

Molte persone hanno applicazioni che girano sotto versioni differenti del framework .NET, in diversi sottodomini o domini e vorrebbero autenticarsi una volta sola nei vari siti: si parla di Single Sign On.

SSO per applicazioni parent/child in una sottodirectory virtuale

E' il caso di applicazioni http://app1.com e http://app1.com/app2 con autenticazione Forms. Lo stato dello user loggato viene mantenuto in un cookie sul client. Quando viene richiamata la RedirectFromLoginPage, il cookie viene creato e contiene un FormsAuthenticationTicket criptato con il nome dell'utente loggato. Nel web.config risulta:

<authentication mode="Forms">
   <
forms name=".App1Auth" protection="All" timeout="60" loginUrl="login.aspx" />
</
authentication>

<authentication mode="Forms">
   <
forms name=".App2Auth" protection="All" timeout="60" loginUrl="login.aspx" />
</
authentication>

Gli attributi importanti sono name e protection. Se sono uguali, entrambe le applicazioni scriveranno e leggeranno lo stesso cookie usando lo stesso livello di protezione. Protection=All significa che al cookie vengono applicate encryption e validation via hash. Di default questi parametri sono settati nel machine.config:

 <machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey=" AutoGenerate,IsolateApps" validation="SHA1" />

 

IsolateApps significa che verrà generata una chiave differente per ogni applicazione. Ovviamente noi non vogliamo questo affinchè entrambe le applicazioni possano utilizzare il cookie. Perciò bisognerà aggiungere nel web.config di entrambe le applicazioni:

<machineKey validationKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902" decryptionKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC" validation="SHA1" decryption="3DES" /> 


Technorati tags:

Print | posted @ venerdì 2 aprile 2010 22:23

Comments have been closed on this topic.