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

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 20

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

驴Cu谩l es la diferencia entre los t茅rminos 鈥渃odificaci贸n鈥, 鈥渆ncriptaci贸n鈥 y 鈥渉ash鈥?

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.

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?

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 鈥減ayload鈥 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!

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

El recurso keygen ya no se encuentra disponible.

Gran explicaci贸n, me quedo claro JWT

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

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