Spring Security es un framework de Java / Java EE que proporciona autenticación , autorización y otras características de seguridad para aplicaciones empresariales. El proyecto fue iniciado a finales de 2003 como 'Acegi Security' (pronunciado Ah-see-gee / ɑː s iː dʒ iː / , cuyas letras son el primero, tercero, quinto, séptimo y noveno carácter del alfabeto inglés , para evitar conflictos de nombres [ 2 ] ) por Ben Alex, y fue lanzado públicamente bajo la Licencia Apache en marzo de 2004. Posteriormente, Acegi se incorporó al portafolio de Spring como Spring Security, un subproyecto oficial de Spring. La primera versión pública bajo el nuevo nombre fue Spring Security 2.0.0 en abril de 2008, con soporte comercial y capacitación disponibles a través de SpringSource .
Flujo de autenticación
El diagrama 1 muestra el flujo básico de una solicitud de autenticación mediante el sistema Spring Security. Muestra los diferentes filtros y cómo interactúan desde la solicitud inicial del navegador hasta una autenticación exitosa o un error HTTP 403 .
Características clave de autenticación
- LDAP (utilizando estrategias basadas en enlace y comparación de contraseñas) para la centralización de la información de autenticación. [ 3 ] : 358–362, §7-3
- Funcionalidades de inicio de sesión único mediante el popular Servicio de Autenticación Central .
- El módulo de inicio de sesión del Servicio de autenticación y autorización de Java (JAAS) es un método de autenticación basado en estándares utilizado en Java. Cabe destacar que esta función solo delega la autenticación a un módulo de inicio de sesión JAAS. [ 4 ]
- Autenticación de acceso básica según lo definido en el RFC 1945.
- Autenticación de acceso Digest [ 3 ] : 356–358, §7-3 según se define en RFC 2617 y RFC 2069.
- Presentación de certificados de cliente X.509 a través del estándar Secure Sockets Layer (SSL ).
- CA, Inc SiteMinder para autenticación (un producto comercial popular de gestión de acceso).
- Soporte tipo Su (Unix) para cambiar la identidad principal a través de una conexión HTTP o HTTPS .
- La función de ejecución como reemplazo permite que una operación asuma una identidad de seguridad diferente.
- Autenticación anónima, lo que significa que incluso a los usuarios no autenticados se les asigna una identidad de seguridad.
- Compatibilidad con adaptadores de contenedores (dominio personalizado) para Apache Tomcat , Resin , JBoss y Jetty (servidor web) .
- Windows NTLM permite la integración con el navegador (experimental).
- Autenticación de formularios web , similar a la especificación del contenedor de servlets .
- Soporte para "recordarme" mediante cookies HTTP .
- Compatibilidad con sesiones concurrentes, que limita el número de inicios de sesión simultáneos permitidos por un usuario.
- Compatibilidad total con la personalización y la integración de implementaciones de autenticación personalizadas.
Características de autorización clave
- Autorización de invocación de métodos de AspectJ .
- Autorización HTTP de las URL de las solicitudes web mediante una selección de rutas de Apache Ant o expresiones regulares .
Características de seguridad basadas en instancias
- Se utiliza para especificar listas de control de acceso aplicables a objetos de dominio .
- Spring Security ofrece un repositorio para almacenar, recuperar y modificar ACL en una base de datos . [ 3 ] : 376–381, §7-7
- Se proporcionan funciones de autorización para hacer cumplir las políticas antes y después de la invocación de métodos.
Otras características
- Localización del software para que los mensajes de la interfaz de usuario puedan estar en cualquier idioma.
- Seguridad del canal, para cambiar automáticamente entre HTTP y HTTPS al cumplir ciertas reglas.
- Almacenamiento en caché en todas las áreas del framework que interactúan con la base de datos.
- Publicación de mensajes para facilitar la programación basada en eventos .
- Soporte para realizar pruebas de integración mediante JUnit .
- Spring Security cuenta con pruebas de aislamiento JUnit exhaustivas .
- Varias aplicaciones de ejemplo, documentación JavaDoc detallada y una guía de referencia.
- Independencia del framework web.
Comunicados
- 2.0.0 (abril de 2008)
- 3.0.0 (diciembre de 2009)
- 3.1.0 (7 de diciembre de 2011)
- 3.1.2 (10 de agosto de 2012)
- 3.2.0 (16 de diciembre de 2013)
- 4.0.0 (26 de marzo de 2015)
- 4.1.3 (24 de agosto de 2016)
- 4.2.0 (10 de noviembre de 2016)
- 3.2.10, 4.1.4, 4.2.1 (22 de diciembre de 2016)
- 4.2.2 (2 de marzo de 2017)
- 4.2.3 (8 de junio de 2017)
- 5.0.0 (28 de noviembre de 2017)
- 5.0.8, 4.2.8 (11 de septiembre de 2018) [ 5 ]
- 5.1.0 GA (27 de septiembre de 2018) [ 6 ]
- 5.1.1, 5.0.9, 4.2.9 (16 de octubre de 2018) [ 7 ]
- 5.1.2, 5.0.10, 4.2.10 (29 de noviembre de 2018) [ 8 ]
- 5.1.3, 5.0.11, 4.2.11 (11 de enero de 2019) [ 9 ]
- 5.1.4 (14 de febrero de 2019) [ 10 ]
- 5.1.5, 5.0.12, 4.2.12 (3 de abril de 2019) [ 11 ]
Citas
- ↑ "Spring Security 6.5.1" . GitHub . Consultado el 24 de junio de 2025 .
- ↑ "¿Por qué el nombre Acegi?" . spring.io .
- 1 2 3 Deinum et al. 2014 .
- ↑ "Domina OAuth: Cómo crear un servidor de autorización seguro" . 29 de diciembre de 2024.
- ↑ "Spring Security 5.0.8 y 4.2.8 lanzados" . spring.io . Consultado el 9 de junio de 2019 .
- ↑ "Spring Security 5.1 ya está disponible" . spring.io . Consultado el 9 de junio de 2019 .
- ↑ "Spring Security 5.1.1, 5.0.9 y 4.2.9 lanzados" . spring.io . Consultado el 9 de junio de 2019 .
- ↑ "Spring Security 5.1.2, 5.0.10, 4.2.10 lanzado" . spring.io . Consultado el 9 de junio de 2019 .
- ↑ "Spring Security 5.1.3, 5.0.11, 4.2.11 lanzado" . spring.io . Consultado el 9 de junio de 2019 .
- ↑ "Spring Security 5.1.4 lanzado" . spring.io . Consultado el 9 de junio de 2019 .
- ↑ "Spring Security 5.1.5, 5.0.12, 4.2.12 lanzado" . spring.io . Consultado el 9 de junio de 2019 .
Referencias
Enlaces externos
- Sitio web oficial
- Plataforma empresarial Java
- Control de acceso informático