Backend
Spring
Seguridad
El módulo de Spring Security añade mecanismos de autenticación (identificación del usuario), autorización (control de acceso) y protección frente a vulnerabilidades web como CSRF1. Algunos de ellos permiten construir las aplicaciones separando totalmente su lógica principal de su lógica de acceso (que suele delegarse en servicios externos usando SSO2 o OAuth3 o OIDC4).
❓ Ejercicio: Para habilitar Spring Security añade la siguiente dependencia al proyecto MVC:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
Por ejemplo, añade un campo oculto a los formularios con un token que será requerido cuando se procese en el servidor. Ese campo distinguirá aquellas peticiones legítimas de las realizadas maliciosamente.
Single Sign-On permite que los usuarios solo se tengan que autenticar una vez para utilizar un conjunto de servicios. Utiliza mensajes con formato XML para intercambiar los tokens de autenticación (SAML), siguiendo este flujo:
OAuth permite a los usuarios autorizar a terceras aplicaciones que accedan a sus datos sin proporcionales directamente sus credenciales. Utiliza mensajes con formato JSON para intercambiar los tokens de autenticación (JWT). Usa un mecanismo diferente dependiendo de si el usuario final es una aplicación (client credentials) o una persona (authorization code, cuyo flujo es este:
OpenID Connect es un protocolo que permite identificar usuarios (propósito similar a SSO) utilizando como mecanismo OAuth. Para ello, estandariza las peticiones y el contenido de los JWT para que contengan la información del usuario identificado.