¿Cuáles son las preocupaciones con OAuth 2.0?
Clase 29 de 39 • Curso de Autenticación con OAuth
Contenido del curso
JSON Web Tokens
- 5

JSON Web Tokens
08:34 min - 6

Autenticación tradicional vs JWT
08:08 min - 7

Configuración inicial de los proyectos
08:22 min - 8

Firmando un JWT
15:23 min - 9

Verificando nuestro JWT firmado y buenas practicas con JWT
11:43 min - 10

Server-Side vs Client-Side sessions
05:23 min - 11

Protegiendo nuestros recursos con JWT
04:38 min - 12

Habilitando CORS en nuestro servidor
01:11 min - 13

Profundizando el concepto de JWKS
02:24 min
OAuth 2.0
- 14

Cómo elegir el flujo adecuado para OAuth 2.0
02:54 min - 15

¿Qué es OAuth 2.0?
00:15 min - 16

Conociendo el API de Spotify
07:29 min - 17

Creando los clientes de Spotify y servicios iniciales
16:46 min - 18

Implementando Authorization Code Grant
14:54 min - 19

Usando nuestro access token para obtener nuestros recursos
07:12 min - 20

Implementando Implicit Grant
09:11 min - 21

Implementando nuestro servicio de autenticación
08:46 min - 22

Modificando nuestro Layout
09:18 min - 23

Implementando Client Credentials Grant
09:52 min - 24

Implementando Resource Owner Password Grant
01:46 min - 25

Implementando Authorization Code Grant (PKCE)
02:26 min
Open ID Connect
Preocupaciones con JWT y OAuth 2.0
Haciendo uso de Auth0
Consideraciones para producción
Cierre del curso
OAuth 2.0 ha sido cuestionado y criticado en diferentes ocasiones, por lo que vamos a explorar algunas de ellas.
OAuth no es un protocolo en sí
Cuando nos referimos a un protocolo hablamos de que su implementación es lo suficientemente estricta para que no existan variaciones y/o confusiones a la hora de la implementación.
Debido a la gran adoptación temprana que tuvo OAuth, muchas compañías empezaron a contribuir y agregar sus propias versiones de la implementación. Por eso, es que en la definición no es altamente estricta y se habla de muchas variantes en su implementación convirtiendo OAuth en un framework para crear protocolos en vez de un protocolo en sí.
El problema con esto es que deja muy al aire y a la opinión de cada uno cual es la mejor forma de implementar OAuth de manera segura y correcta.
La recomendación es no solo leer la especificación si no ademas leer sobre otras implementaciones y los consejos de otras compañías para asegurar una buena implementacion de la misma.
Bearer tokens
Un Bearer token es un token con la característica de que cualquier entidad con la posesión del token puede usarlo a su gusto y no se requiere prueba de su posesión para este uso.
El problema con esto es que el token en si tiene todas las autorizaciones que han sido diseñadas para el cliente quien lo concedió, pero eso no implica que otro cliente pueda tomar ese token y usarlo.
Idealmente no solo enviar el token si no una prueba de la posesión del mismo pero la realidad es que esto nunca se incluyo en la especificación por lo que las recomendaciones son siempre hacer el uso y envío de tokens en conexiones seguras SSL y tener mucho cuidado con el almacenamiento de los mismos.
Mi recomendación general es que si quieren reforzar sus conocimientos en OAuth leanse la especificación y investiguen un poco mas allá en documentaciones como la de Auth0: https://auth0.com/docs/protocols/oauth2