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

Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

JSON Web Tokens

5/39
Recursos

Los JSON Web Tokens (JWT) son un estándar que nos permite representar los permisos o requerimientos entre dos partes, es decir, el servidor de nuestra aplicación concede los permisos para un usuario generando un token, este token se envía al cliente o navegador donde utilizamos el token para realizar peticiones al servidor sin que éste necesite verificar a los usuarios, simplemente recibe los JWT y devuelve la información a la que el usuario tiene permiso según cada token.

Los JWT se dividen en 3 cadenas de texto separadas por puntos. La primera parte es el header y contiene el algoritmo y el tipo de token que utilizamos para firmar. La segunda parte es el payload, contiene información como la identificación del usuario, fechas de creación y expiración del token, entre otras ( debemos tener cuidado de no transmitir información sensible ya que, puede ser decodificada por alguna otra aplicación). Por último, la signature es la tercera parte del token y se genera codificando los anteriores campos más una firma secreta, gracias a esta parte del token podemos verificar su autenticidad e invalidar el token si alguno de los campos cambia.

Podemos utilizar dos tipos de algoritmos para codificar nuestros tokens, los simétricos nos permiten encriptar y desencriptar los tokens utilizando una única llave privada, o podemos utilizar algoritmos asimétricos que utilizan una llave privada y una publica para tener mayor seguridad y evitar problemas si alguna de las llaves es interceptada.

Aportes 23

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

¿Cuál es la diferencia entre los términos “codificación”, “encriptación” y “hash”?

Resumen
Estructura JWT

  • header: Contiene algoritmo y tipo de token
  • payload: Contiene información
  • signature: Es una firma encriptada generalmente en sha-256

Header y payload vienen codificados en base64

Algoritmos simétricos usan una unica llave
Algoritmos asimétricos usan dos llaves una publica y otra privada

Dejo por acá un interesante artículo sobre los JWT!

Pros-and-cons-of-jwts

Cuando @glrodasz explica los JWT entre dos partes (0:13 - 0:49), se refiere al cliente y al servidor.

La parte que genera el JWT, es el servidor, concediéndole varios permisos (peticiones).

La segunda parte se trata del cliente, que utiliza el JWT generado por el server para que el cliente pueda hacerle peticiones al server.

Wow, me parece un método super inteligente de verificar los tokens, es decir, básicamente la signature es la que ya tiene todo el contenido pero firmado con una especie de contraseña, entonces al decodificar el contenido “payload” con el signature, se da cuenta que no es lo mismo y acaba dando una respuesta inválida de que la firma no es segura!

siempre este tema es motivo para molestar a los que se llaman jeison jason, jaison, yeisson etc.

¿Existen escenarios donde tenga sentido encriptar un token?

super, mil gracias por la explicación

El JWT puede ser facilmente leido y manipulado pero la firma asegura que no nos cambien la infromación.

Los yo Web Tokens UwU

Los tokens de acceso se utilizan en la autenticación basada en tokens para permitir que una aplicación acceda a una API. La aplicación recibe un token de acceso después de que un usuario autentica y autoriza el acceso con éxito, luego pasa el token de acceso como una credencial cuando llama a la API de destino. El token pasado informa a la API que el portador del token ha sido autorizado para acceder a la API y realizar acciones específicas especificadas por el alcance otorgado durante la autorización.

Fuente: https://auth0.com/docs/tokens/access-tokens

son seguros los jwt?

en el minuto 05:54 el profe se confunde, en realidad, al firmar los JWT con un secret es lo que puede caer en manos equivocadas, para el caso del algoritmo asimétrico intuyo que la expresión no esta acorde

El recurso keygen ya no se encuentra disponible.

Gran explicación, me quedo claro JWT

JWT es un estadar RFC 7519 para autenticacion de usuarios

JSON WEB TOKEN esta codificado y no cifrado, comprende 3 partes, Header,Payload y Signature

a estudiar Json Web Tokens

Codificación/Decodificación: Es un proceso reversible. (ie: base64)

Se recomienda usa una cadena de 256 bits para la calve secreta