SlideShare una empresa de Scribd logo
¡Bienvenidos!
Agenda:
• Inauguración del Meetup de En Mi Local Funciona Barcelona
• Protegiendo tu API REST con JWT en aplicaciones .NET
• Cervezas y picoteo.
Comenzamos el blog en 2016
Y poco a poco hemos ido creciendo:
Gracias a todos los que lo habéis hecho posible
Más de 90 posts de más de 50 compañeros
Protegiendo tu API REST con
JWT en aplicaciones .NET
1. Conceptos básicos de seguridad
2. Cookies vs Tokens
3. Definiciones de JWT
4. Fundamentos de JWT
5. Anatomía de JWT
6. Estructura de un Token
7. Nuestros amigos debuggers
8. Ciclo de vida de un Token
9. Librerías y vulnerabilidades
10.Vamos a la acción
UN REPASO A CONCEPTOS BASICOS
Autenticación
- Recepción hotel
- Login con password
- HTTP 401 Unauthorized
Autorización
- Llave de la habitación
- Permisos de acceso
- HTTP 403 Forbidden
Cookies: WebForms, asp.net mvc, etc
Sesión: Necesitan ser guardas en el servidor, -Escalable
Datos: Contiene la sessionID, AUTH del usuario
Tokens: Api key, OAuth2, openID, SSO, etc.
Sesión: Se almacena en cada cliente, +Escalable
Datos: Contiene información del usuario
Cookies vs Tokens
https://es.wikipedia.org/wiki/JSON_Web_Token https://tools.ietf.org/html/rfc7519
• Desktop, Mobile & Web Ready!!
• Ligero: podemos codificar gran cantidad de datos y pasarlo como una cadena.
• Self-container: Delegamos mantener el estado al cliente.
• Stateless: Creamos servicios optimizados desacoplados del servidor .
• Scalable: Los webserver pueden escalar sin problemas y aumentar en rendimiento.
• La información es confiable porque está firmada digitalmente.
• "Authorization: Bearer token“ es la forma más común de enviarlo (existen otras).
• ¡Nos olvidamos de cookies!
• Los JWT son mecanismos para transferir datos, no para asegurarlo
• Los JWT son seguros cuando se utiliza conjuntamente con HTTPS
RECORDAR: Siempre, debemos usar HTTPS entre el cliente/servidor para encriptar las peticiones.
• JWT sirve para transmitir información de un usuario garantizando integridad de datos
entre un cliente/servidor mediante una cadena de texto codificada en Base64.
ANATOMIA DEL TOKEN
HEADER: Indica el algoritmo y tipo de Token.
PAYLOAD: Datos de usuario/claims
SIGNATURE: la firma, para verificar que el token es válido.
ESTRUCTURA DEL TOKEN (Claims)
Claims: No son obligatorios.
Claims: Se recomienda seguir este formato.
Claims: No todas las librerías .NET los implementan.
jti: Es muy útil para usar Tokens de un solo uso y evitar ataques.
Especificación: https://tools.ietf.org/html/rfc7519
JWT – ESTRUCTURA DEL TOKEN
HEADER: Algoritmo Hash HS256 y token JWT.
PAYLOAD: Datos de nombre usuario y lo que necesite nuestra API para validar la petición,
recordar que nosotros generamos el token y podemos incluir todos los atributos que queramos.
SIGNATURE: Firma para la integridad del Token
Aquí lo importante es el “SECRET" con el que firmamos y que ahora explicaremos.
NUESTRO AMIGOS DEBUGGERS
DEMO: Lo importante es el SECRET con el que firmamos el token y no debemos darlo a nadie.
JWT
LIBRERIAS
Y
VULNERABILIDADES
https://docs.microsoft.com/en-us/security-updates
JWT
LIBRERIAS
Y
VULNERABILIDADES
Vulnerabilities: https://docs.microsoft.com/en-us/security-updates/securityadvisories/2017/3214296
Ciclo de vida de un Token
Meetup En mi local funciona - Protegiendo tu API REST con JWT en aplicaciones .NET
DEMO ASP.NET WEB API
DEBUGGERS
CUESTIONES CLAVE
• Que pasa cuando recibo el token en mi controlador
• Que pasa cuando caduca el token en mi aplicación
• Que pasa cuando realizamos logout en app/web
• Que pasa con mis token en devlocal y producción
• Que pasa si tengo varias API REST que usan JWT
• Quien y donde se gestionan los usuarios de mi API
PREGUNTAS
REFERENCIAS
• https://enmilocalfunciona.io/construyendo-una-web-api-rest-segura-con-json-web-token-en-net-parte-i/
• https://enmilocalfunciona.io/construyendo-una-web-api-rest-segura-con-json-web-token-en-net-parte-ii/
• https://enmilocalfunciona.io/construyendo-una-web-api-rest-segura-con-json-web-token-en-net-parte-iii/
• https://github.com/santimacnet/WebAPI-Segura-JWT
• https://jwt.io
• https://www.jsonwebtoken.io
• https://tools.ietf.org/html/rfc7519
• https://docs.microsoft.com/en-us/security-updates/securityadvisories/2017/3214296
• https://auth0.com/blog/ten-things-you-should-know-about-tokens-and-cookies/
Meetup En mi local funciona - Protegiendo tu API REST con JWT en aplicaciones .NET
Meetup En mi local funciona - Protegiendo tu API REST con JWT en aplicaciones .NET

Más contenido relacionado

PDF
PPT
20150511 Presentación SeR Beta Formación 2015
PPTX
Smart contract
PDF
Protocolos SSL/TLS
PPTX
Protocolo de redes ssl
PDF
Https Byron Barreno3524
PPTX
Exposicion del tls
PPTX
Protocolo SSL
20150511 Presentación SeR Beta Formación 2015
Smart contract
Protocolos SSL/TLS
Protocolo de redes ssl
Https Byron Barreno3524
Exposicion del tls
Protocolo SSL

Similar a Meetup En mi local funciona - Protegiendo tu API REST con JWT en aplicaciones .NET (20)

PPTX
JWT.pptx
PDF
Asegurando APIs en Symfony con JWT
PDF
Seguridad para aplicaciones web java con json web tokens (jwt) 2020
PDF
La importancia de la seguridad en los json payloads
PDF
Autenticación en aplicaciones .Net web y nativas
PPTX
GFI - Seguridad en tus APIs
PDF
"Los Imprescindibles de .NetCore"
PDF
Creando un jwt token con node.js y express
PPTX
Presentacion-Oauth
PPTX
Autenticar y securizar API en .NET Core como un Avenger
PDF
Oauth v2-rev
PPTX
Implement Identity Server with .NET
PPTX
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
PPTX
WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios
PDF
RESTful Para todos by Diego Sapriza
PDF
Endpoints Seguros en nuestra Rest-API
PPTX
Meetup TCMS OAuth2
PPTX
Usando postman para probar un rest api
JWT.pptx
Asegurando APIs en Symfony con JWT
Seguridad para aplicaciones web java con json web tokens (jwt) 2020
La importancia de la seguridad en los json payloads
Autenticación en aplicaciones .Net web y nativas
GFI - Seguridad en tus APIs
"Los Imprescindibles de .NetCore"
Creando un jwt token con node.js y express
Presentacion-Oauth
Autenticar y securizar API en .NET Core como un Avenger
Oauth v2-rev
Implement Identity Server with .NET
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios
RESTful Para todos by Diego Sapriza
Endpoints Seguros en nuestra Rest-API
Meetup TCMS OAuth2
Usando postman para probar un rest api
Publicidad

Más de atSistemas (20)

PPTX
Agile itsm con atlassian
PPTX
Bizz Chat metamorfosis digital
PPTX
Webinar 5 net5-2021
PPTX
Webinar Speed Up Academy: Acelera la incorporación de talento.
PPTX
Webinar: Descubre los diferentes servicios Cloud Native en Azure
PDF
El futuro del trabajo en equipo
PPTX
La tecnología al servicio de la agilidad empresarial
PPTX
Transformación Agile
PPTX
Transformación cultural
PDF
Technical considerations for Blockchain networks with AWS
PDF
Blockchain Spain II Edición - Ángel Miguel Martínez
PDF
Blockchain Spain - Néstor Gándara
PDF
Blockchain Spain - Juan Luis Gozalo
PDF
Blockchain Spain - Ramón Abruña
PDF
Blockchain Spain - Santiago Chamat
PDF
Blockchain Spain - Antonio Gómez
PDF
Blockchain Spain - Miguel Ángel Rojas
PDF
Blockchain Spain - Andrés Sánchez
PDF
Blockchain Spain II Edición - Autoridad Portuaria de Cartagena, Ilboc, Repsol
PDF
Blockchain Spain II Edición - Juan Manuel Martínez
Agile itsm con atlassian
Bizz Chat metamorfosis digital
Webinar 5 net5-2021
Webinar Speed Up Academy: Acelera la incorporación de talento.
Webinar: Descubre los diferentes servicios Cloud Native en Azure
El futuro del trabajo en equipo
La tecnología al servicio de la agilidad empresarial
Transformación Agile
Transformación cultural
Technical considerations for Blockchain networks with AWS
Blockchain Spain II Edición - Ángel Miguel Martínez
Blockchain Spain - Néstor Gándara
Blockchain Spain - Juan Luis Gozalo
Blockchain Spain - Ramón Abruña
Blockchain Spain - Santiago Chamat
Blockchain Spain - Antonio Gómez
Blockchain Spain - Miguel Ángel Rojas
Blockchain Spain - Andrés Sánchez
Blockchain Spain II Edición - Autoridad Portuaria de Cartagena, Ilboc, Repsol
Blockchain Spain II Edición - Juan Manuel Martínez
Publicidad

Último (11)

PPTX
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
DOCX
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
PDF
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
PPTX
sistemas de informacion.................
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
PPTX
Conceptos basicos de Base de Datos y sus propiedades
PPTX
Derechos_de_Autor_y_Creative_Commons.pptx
PPTX
Fundamentos de Python - Curso de Python dia 1
PDF
Su punto de partida en la IA: Microsoft 365 Copilot Chat
PPTX
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
PPTX
Implementación equipo monitor12.08.25.pptx
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
sistemas de informacion.................
AutoCAD Herramientas para el futuro, Juan Fandiño
Conceptos basicos de Base de Datos y sus propiedades
Derechos_de_Autor_y_Creative_Commons.pptx
Fundamentos de Python - Curso de Python dia 1
Su punto de partida en la IA: Microsoft 365 Copilot Chat
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
Implementación equipo monitor12.08.25.pptx

Meetup En mi local funciona - Protegiendo tu API REST con JWT en aplicaciones .NET