Autenticación, ¿qué es?
Published: 2022-04-21 23:19:07

Muchas veces cuando hablamos de autenticación es un poco complejo y más aún cuando nos toca dar el significado en sí del término y solemos confundir los significados con autorización. Prácticamente que al autenticarnos estamos demostrando quienes decimos ser. Pero hoy en día todos manejamos de memoria el trámite común para autenticar a uno o más usuarios en nuestras aplicaciones. Es el método de la vieja escuela de registrar un usuario con su información básica, como correo electrónico, contraseña, etc. y luego, en el momento del inicio de sesión, haga coincidir el correo electrónico y la contraseña proporcionados con los datos almacenados previamente.

Pero actualmente han surgido varias herramientas o que han sido de gran ayuda para desarrollar estas formas de autenticarnos, y unos de mis pensamientos que un ingeniero de software realmente nunca para de aprender y en este mundo tan cambiante debemos prepararnos a dichos cambios y así mantenernos valiosos como desarrollador.

Menciono a algunos métodos de validación de identidad de un usuario:

- Autenticación basada en sesión: Este método básicamente sucede cuando el usuario ingresa su nombre de usuario y contraseña y la solicitud pasa de la aplicación cliente al servidor, entonces el servidor busca al usuario, lo autentica y envía un token único a la aplicación cliente del usuario . (también guarda este token único en la memoria o en la base de datos).

- Autenticación basada en token:Usualmente lo aplicamos cuando el usuario ingresa sus credenciales de inicio de sesión, luego el servidor verifica que las credenciales sean correctas y devuelve un token firmado (el JWT) que puede contener información adicional como metadatos como user_id, permisos.

- Autenticación Sin contraseña: Así como lo lee sin contraseña, alguna aplicación que haga eso, conozco una se llama streamyard. Las formas más populares para autenticarnos sin contraseñas son las siguientes: enviar un enlace único al correo electrónico o enviar un código o una contraseña única a través de SMS.
Autenticación con una red social. Este método se ha vuelto muy popular, iniciar sesión con Google o Facebook por ejemplo.

- Autenticación de dos factores: Este método realmente nos ayuda a proporcionar una capa adicional en la parte de seguridad para validar identidades en nuestras aplicaciones.

3 formas para autenticar un usuario: JWT, Firebase Auth o Auth0.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2vppjio5tavmzl94qk0y.png)

Primero JWT (por sus siglas en ingles JSON Web Token) este es conocido como un estándar que define una manera segura de transmitir información a través de JSON.

Luego encontramos Firebase Authentication, este es un servicio que ofrece Google y proporciona servicios de backend, fáciles de usar y bibliotecas de IU para autenticar a los usuarios en nuestros proyectos.
  
Y por último, se encuentra Auth0, esta es una plataforma que te ayuda a autenticar y a autorizar, y tiene un cliente para poderlo usar con tecnologías .NET, Python entre otros. Y buen punto a recalcar es que he mencionado dos palabras claves que son “Autenticar” y “Autorizar”.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kywklcn5ls774hqmvw6w.png)

Básicamente al autenticarnos estamos realizando el proceso de verificación de quiénes somos dentro de una aplicación usted, entonces en palabras más simples cuando inicia sesión en una aplicación con un nombre de usuario y contraseña, se está autenticando. Ahora bien la autorización es el procedimiento de verificación de los accesos que tenemos disponible dentro de una aplicación.

No olvidemos autenticar a nuestros usuarios de manera segura.