Your SlideShare is downloading. ×
Springio2012 taller-seguridad-web-springsecurity-3
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Springio2012 taller-seguridad-web-springsecurity-3

33,105
views

Published on

Taller Seguridad en Aplicaciones Web con Spring Security 3 [SpringIO 2012]

Taller Seguridad en Aplicaciones Web con Spring Security 3 [SpringIO 2012]

Published in: Technology

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
33,105
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
89
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Seguridad en Aplicaciones Web con Spring Security 3 [Taller] Fernando Redondo Ramírez @pronoide_fer
  • 2. Índice• ¿Quién soy?• Breve Introducción a Spring Security 3• ¡Manos a la obra!• Más allá del taller• Enlaces• Preguntas
  • 3. ¿Quién soy?• Emprendedor y empresario en Pronoide desde 2003• Formador Java & Friends• Haciendo cosas con Java desde 1999• Ingeniero técnico informático• Casado y padre de dos hijos (la segunda hija podría estar naciendo ahora… ¡uff!)
  • 4. Breve Introducción a Spring Security 3• ¿La seguridad JEE no es estándar? Sí, pero: 1. Seguridad JEE ⇒ Basada en restricciones (Constraints) 2. Seguridad JEE ⇒ Exclusivamente perimetral 3. Seguridad JEE ⇒ Funcionalidades dependientes de cada Servidor de Aplicaciones (Realms, SSO, Cifrado, etc.) 4. Seguridad JEE ⇒ Aplicaciones JEE no transportables entre plataformas o versiones del mismo servidor 5. Seguridad JEE ⇒ Difícil de adaptar a para aplicaciones Web 2.0 y/o nuevos requerimientos
  • 5. Breve Introducción a Spring Security 3• ¿La seguridad JEE no es estándar? Sí, pero: 1. Spring Security ⇒ Basada en otorgar permisos 2. Spring Security ⇒ Perimetral y jerárquica 3. Spring Security ⇒ Funcionalidades independientes del Servidor de Aplicaciones 4. Spring Security ⇒ Aplicaciones JEE transportables 5. Spring Security ⇒ Versátil y adaptable
  • 6. Breve Introducción a Spring Security 3 Arquitectura (¡y se acabó!) Peticiones Web Métodos Negocio Business Object (Method) Security Web/HTTP Security Proxies/Interceptores de Cadena de filtros de seguridad seguridad Seguridad Aplicaciones SecurityContextHolder SecurityContext Spring Security 3 Authentication GrantedAuthority Autentificación Autorización AuthenticationManager AccessDecisionManager AuthenticationProviders Voters UserDetailsService AfterInvocationManager
  • 7. ¡Manos a la obra! ¡¡Necesito seguridad en la aplicación de los Expedientes X!!Notas1. Descargar http://pronoide.com/descargas/fbi.war2. Importar war en STS 2.83. Ejecutar la aplicación4. Entrar en http://localhost:8080/fbi/index.jsp
  • 8. Etapa: Configurar Spring Security en la aplicación webi. Configurar el filtro interceptor de las peticiones web
  • 9. Etapa: Configurar Spring Security en la aplicación webii. Crear el fichero para la configuración de seguridad con una seguridad mínima y cargarlo en el web.xml
  • 10. Etapa: Configurar Spring Security en la aplicación webiii. Configurar el login/logout explícitamenteiv. Solucionar problemas de recursos, CSS e imágenes
  • 11. Etapa: Configurar Spring Security en la aplicación webv. Proteger contraseñas de los usuarios encriptándolas • Generar claves con Spring Basic Crypto Module • Poner las claves cifradas y configurar el algoritmo y el salt
  • 12. Etapa: Configurar Spring Security en la aplicación webvi. Añadir funcionalidad “Remember Me”
  • 13. Etapa: Configurar Spring Security en la aplicación webvii. Seguridad en el canal de transporte (HTTPS) • Configurar restricciones y puertos • Crear conector SSL en Servidor
  • 14. Etapa: Configurar Spring Security en la aplicación webviii. Control de la expiración de sesionesix. Control de la concurrencia de sesiones
  • 15. Etapa: Configurar Spring Security en la aplicación webx. Uso de la librería de etiquetas (Spring Security Taglibs)
  • 16. Etapa: Configurar Spring Security en la aplicación webxi. Uso Expresiones SpEL para proteger URL’sxii. Uso Expresiones SpEL con etiquetas Security Taglib
  • 17. ¡Pero que has hecho! ¿¿Sólo hay seguridad en el acceso a los recursos web?? Prueba y verás: https://localhost:8443/fbi/expedientesx /clasificar?id=1
  • 18. Etapa: Configurar Spring Security en Servicios de Negocio xiii. Seguridad en la invocación de métodos de negocio con anotaciones Spring Security
  • 19. Etapa: Configurar Spring Security en Servicios de Negocio xiv. Seguridad en la invocación de métodos de negocio con anotaciones JSR-250
  • 20. Etapa: Configurar Spring Security en Servicios de Negocio xv. Seguridad en la invocación de métodos de negocio con Pointcuts de AspectJ
  • 21. Etapa: Configurar Spring Security en Servicios de Negocio xvi. Seguridad en la invocación de métodos de negocio con Expresiones SpEL (Preinvocación)
  • 22. Mucho mejor pero… ¿¿Qué haces consultando expedientes que no son tuyos?? ¿¿Cómo es que puedes ver el de tu hermana?? ¿¿… y a estas horas??
  • 23. Etapa: Configurar Spring Security de forma jerárquica xvii.Seguridad en la invocación de métodos de negocio con Expresiones SpEL (Postinvocación)
  • 24. Etapa: Configurar Spring Security de forma jerárquica xviii.Seguridad en la invocación de métodos de negocio con Expresiones SpEL (Filtro de resultados)
  • 25. Etapa: Configurar Spring Security de forma jerárquica xix. Utilización del sistema de votantes • Codificar un votante
  • 26. Etapa: Configurar Spring Security de forma jerárquica xix. Utilización del sistema de votantes (cont.) • Explicitar la configuración del espacio de nombres Security • Personalizar la configuración del accessDecisionManager
  • 27. Etapa: Configurar Spring Security de forma jerárquica xx. Personalizar la cadena de filtros de seguridad • Crear un filtro para recordar el usuario que hace login
  • 28. Etapa: Configurar Spring Security de forma jerárquica xx. Personalizar la cadena de filtros de seguridad (cont.) • Crear un filtro para evitar el uso del botón “volver” tras hacer logout
  • 29. The Smoking Man Todo esto de Spring Security esta muy bien, pero siempre me quedará el ataque Java2 <%System.exit(0);%>
  • 30. Más allá del taller. A partir de aquí…• Configuraciones explícitas no implícitas• Gestión de ACL’s• Autentificación vía DataSources, LDAP, X509, OPENID, JEE, etc• Captcha• Single Sign On• Secure Remoting• “... en la mayoría de mi trabajo, las leyes de la física rara vez se aplican.” Mulder 1x01 "Pilot"
  • 31. ¿preguntas?The Truth is Out There(La Verdad está ahí afuera)
  • 32. Referencias• Spring Security 3.1 Reference http://bit.ly/uQFyUY• JSR-250 Annotations http://en.wikipedia.org/wiki/JSR_250• Spring SpEL http://bit.ly/xIuueQ• Spring Security Common Built-In Expressions http://bit.ly/worFP0• Spring Security Adding Custom filters http://bit.ly/z2vQWQ• Constantes Spring Security http://bit.ly/yszYqm• Clasificación de la información por países http://bit.ly/zLCoNT
  • 33. ¡Gracias!• @pronoide_fer• fredondo@pronoide.com• http://pronoide.com• http://blog.pronoide.es