Autenticación vs. autorización

2/20
Recursos

Aportes 9

Preguntas 1

Ordenar por:

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

o inicia sesión.

Holaa 😄

Autenticación

Este proceso es para determinar si la combinación de usuario y contraseña son las correctas.

  • Si es correcta:
    • Nos dan una llave para acceder, (en este curso esa llave será un token generado por la librería jsonwebtoken )
  • Si NO es correcta:
    • El servidor nos prohibe continuar y lo normal es que nos responda con un código http 401 que significa Unauthorized (veamoslo con gatos xD)

Autorización

Es cuando el servidor ya verificó que la contraseña y usuario son correctas y se le devolvió correctamente al usuario un token (la llave) pero se quiere usar esa llave para entrar a una parte del sitio prohibido para ese usuario, esto puede suceder cuando:

  • El usuario no es administrador y quiere acceder a una página sólo para admistradores (petición get) .
  • El usuario quiere realizar una petición tipo delete/post/put a un recurso pero sólo tiene permisos de lectura ese usuario.

Lo normal es que el servidor responda con status code 403 cuando esto sucede

En lo personal siento que la imagen del 401 debería estar en la del código 403 porque representa mejor que el gato tiene prohibido entrar a la tienda.

Quizá en la imagen de 401 lo que debería ir es un gato sosteniendo una identificación con su nombre y foto entregandola a otro gato para entrar a un lugar donde la puerta tenga un letrero que diga “only local cats”. Jaja no sé, si alguna vez un diseñador ve este mensaje, traten de enviar un diseño con una solicitud a la página por favor xD.

En pocas palabras
Autenticación: Quien eres
Authorizacion: Los permisos que tienes

  • Autenticación se refiere a verificar quién eres y se encarga de revisar si puedes o no ingresar a tus credenciales.
  • Autorización gestiona los permisos, protege endpoints.

Un aporte extra.
Para que exista la autorización, debe existir previamente una autenticación.

Para este curso usaremos Json Web Token (JWT)

Autenticación: Es quien eres.
Autorización: Es lo que puedes hacer (lo que estás autorizado a hacer, lo que tienes permiso de hacer).

Autenticación se refiere a quien eres.
Autorización se refiere a la gestión de permisos, como protegemos ciertos endpoints de acuerdo al rol o los permisos que querramos dar.

JWT: Json Web token, es una tecnología funciona de modo stateless, quiere decir que no hay una sesión como tal del lado del backend sino que todo va a estar por medio de un token, esto es interesante porque funciona para poder escalar el login del usuario para cuando queramos hacer sistemas distribuidos.

Autenticación: login - credenciales - token ( llave admin - user)
Autorización: permisos - protección

JWT: token ( sesión )