Scenario: sito web con registrazione utenti per fornire servizi personalizzati
autenticazione + autorizzazione: come gestirle?
Tecnologia prescelta: jee6 + jboss (su openshift) + mysql
Soluzioni possibili:
- tutto interno
- autenticazione esterna + autorizzazione interna
- entrambe le soluzioni insieme
Ragioniamo...
Oggi quasi tutti hanno un account su facebook o su google, perchè non utilizzare il sistema di autenticazione offerto da questi provider, gestendo internamente il processo di autorizzazione?
Nulla toglie la possibilità di registrare un utente internamente per il processo di autenticazione + autorizzazione..
Soluzione: usare due domini di sicurezza a cascata.
Indizi:
usare facebbok + google per autenticazione:
http://server.dzone.com/articles/jbossas7-making-your-web
Multiple login modules can be chained together in a stack, with each login module providing both the authentication and authorization components. This works for many use cases, but sometimes authentication and authorization are split across multiple user management stores.
http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/5/html/Security_Guide/ch12.html#sect-Password_Stacking
Abilitare l'audit del processo di autenticazione:
http://middlewaremagic.com/jboss/?p=453
Gestione dei domini in standalone.xml:
<security-domain cache-type="default" name="external_auth">
<authentication>
<login-module code="org.picketlink.social.auth.ExternalAuthLoginModule" flag="required">
<module-option name="password-stacking" value="useFirstPass">
</module-option></login-module>
<login-module code="Database" flag="required">
<module-option name="dsJndiName" value="java:jboss/datasources/MysqlDS">
<module-option name="principalsQuery" value="select A.password from UserAuth as A where A.username=?">
<module-option name="rolesQuery" value="SELECT B.roleName,'Roles' FROM UserRole as B left join UserAuth as A on (A.id =B.userAuth_id) where A.username = ?">
<module-option name="password-stacking" value="useFirstPass">
</module-option></module-option></module-option></module-option></login-module>
</authentication>
</security-domain>
Questo è solo l'inizio...
Nessun commento:
Posta un commento