Bienvenida e introducción

1

Qué aprenderás sobre autenticación con OAuth

2

Stack de seguridad para aplicaciones modernas

3

Autenticación

4

Autorización

JSON Web Tokens

5

JSON Web Tokens

6

Autenticación tradicional vs JWT

7

Configuración inicial de los proyectos

8

Firmando un JWT

9

Verificando nuestro JWT firmado y buenas practicas con JWT

10

Server-Side vs Client-Side sessions

11

Protegiendo nuestros recursos con JWT

12

Habilitando CORS en nuestro servidor

13

Profundizando el concepto de JWKS

OAuth 2.0

14

Cómo elegir el flujo adecuado para OAuth 2.0

15

¿Qué es OAuth 2.0?

16

Conociendo el API de Spotify

17

Creando los clientes de Spotify y servicios iniciales

18

Implementando Authorization Code Grant

19

Usando nuestro access token para obtener nuestros recursos

20

Implementando Implicit Grant

21

Implementando nuestro servicio de autenticación

22

Modificando nuestro Layout

23

Implementando Client Credentials Grant

24

Implementando Resource Owner Password Grant

25

Implementando Authorization Code Grant (PKCE)

Open ID Connect

26

¿Qué es OpenID Connect?

27

Implementando OpenID Connect

Preocupaciones con JWT y OAuth 2.0

28

¿Cuáles son las preocupaciones con JWT?

29

¿Cuáles son las preocupaciones con OAuth 2.0?

Haciendo uso de Auth0

30

¿Qué es Auth0?

31

Auth0 Lock y auth0.js

32

Universal Login

33

Social Login con Auth0

34

Custom Social connection con Spotify

35

Multifactor authentication

36

Authorization Extension en Auth0

Consideraciones para producción

37

Buenas prácticas para el despliegue en producción

38

Uso de diferentes tenants para producción con Auth0

Cierre del curso

39

Cierre del curso

¿Cuáles son las preocupaciones con OAuth 2.0?

29/39

Lectura

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

Aportes 1

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Me gustaría que miraran este video de Chema Alonso sobre OAuth y es preocupante lo que plantea
Después de ver el vídeo mi pregunta es ¿podemos desde el desarrollo evitar el robo de tokens??