[CBS-030] Seguridad de APIs
Este curso aborda la protección de aplicaciones web, cubriendo desde las bases de REST APIs hasta protocolos avanzados. Incluye temas como seguridad en HTTP, SSL, autenticación, OAuth2, CORS, JWT, y OpenID Connect, proporcionando un enfoque integral en la protección de recursos y datos en aplicaciones.
Duración: 16 horas
Perfil: Avanzado
Dirigido a
Esta acción formativa va dirigida a programadores, analistas, arquitectos de sistemas e ingenieros de seguridad interesados en aprender cómo proteger las APIs y aplicaciones web.
Requisitos previos
Los alumnos necesitarán tener experiencia con el lenguaje de programación Java y Java EE. Recomendables conocimientos Web Services y Spring framework previos.
Objetivos
Fundamentos de seguridad en APIs, incluyendo protocolos como SSL, TLS y OAuth2.
Implementar mecanismos de autenticación y autorización seguros en aplicaciones.
Estrategias de seguridad avanzadas.
Implementar flujos de autenticación eficientes y seguros.
Contenido
Introducción a las APIs REST
Conceptos básicos de las APIs RESTful
Estructura y funcionamiento de una API REST
Seguridad en el protocolo HTTP
Vulnerabilidades comunes en HTTP
Mejores prácticas para asegurar las comunicaciones HTTP
Seguridad en el Transporte
Protección de datos en tránsito
Uso de TLS/SSL para asegurar la conexión
Certificados X.509 y SSL
Introducción a los certificados digitales
Implementación y gestión de certificados X.509 y su relación con SSL/TLS
Autenticación
Conceptos y métodos de autenticación en APIs
Autenticación básica, digest y avanzada
Seguridad en el Cliente
Buenas prácticas para proteger el cliente (navegadores, aplicaciones móviles)
Prevención de vulnerabilidades a nivel de cliente
Autenticación Implícita del Navegador (IBA)
Funcionamiento de la autenticación implícita en navegadores
Riesgos y protección frente a ataques de autenticación
CSRF (Cross-Site Request Forgery)
Qué es y cómo prevenir la falsificación de peticiones entre sitios
Implementación de medidas de protección contra CSRF
CORS (Cross-Origin Resource Sharing)
Concepto y configuración de CORS para permitir o restringir el acceso a recursos entre diferentes orígenes
Riesgos asociados y cómo gestionarlos
Autorización con OAuth2
Introducción al protocolo OAuth2 para control de acceso
Diferencia entre autenticación y autorización
Flujos de OAuth2
Authorization Code Flow: Autenticación basada en código de autorización
Implicit Flow: Flujo implícito para aplicaciones cliente
Resource Owner Password Credentials Flow: Flujo de credenciales del propietario de recursos
Client Credentials Flow: Flujo para aplicaciones de servidor a servidor
JWT (JSON Web Token) y JWS (JSON Web Signature)
Estructura de JWT y su uso para la autenticación y autorización
Generación, consumo y validación de tokens JWT
Introducción a JWS para garantizar la integridad del token
OpenID Connect (OIDC)
Introducción a OpenID Connect sobre OAuth2 para autenticación federada
Flujos de autenticación con OIDC
Uso del ID Token para la identificación de usuarios
Documentación Recomendada
The Design of Web APIs
Arnaud Lauret
October 2019 | 392 pages
ISBN 9781617295102