Muchos de nosotros tenemos una idea de una aplicación que va a revolucionar o a cambiar el mundo. Sin embargo, es importante entender que las ideas solo son ideas si no se ejecutan. Por eso, existen una serie de metodologías como Design thinking, Lean UX, Design Sprint que nos llevan desde el proceso de ideación, validación de la idea, creación del modelo de negocio hasta finalmente el desarrollo de un Mínimo Producto Viable (MVP).
El problema es que el Mínimo Producto Viable requiere un gran esfuerzo de parte de desarrollo, y quiero pensemos en esto por un momento. Toda aplicación por más sencilla que sea necesita toda una capa de autenticación. ¿Y cuánto cuesta implementar esta capa de autenticación?
Miremos una pequeña lista de lo que idealmente debería tener esta capa:
Si hacemos las cuentas para desarrollar estos features en un equipo de dos desarrolladores que están trabajando en el MVP, podría ser un aproximado de más de dos meses, y aun no hemos trabajado en nuestra idea de negocio, pues esto es algo básico que tiene la app, es por eso que surge la necesidad de algo como Identity as a Service o Identidad como Servicio.
Es cierto que muchas librerías y frameworks que traen todo un sistema de autenticación pero si se quiere estar al día en cuanto a términos de seguridad y nuevas características, estos se quedan cortos.
Aunque hay muchos otros servicios, unos de mis preferidos es Auth0. Ya que hace demasiado fácil tener todo un sistema de autenticación con todos estas características que te he mencionado y además para usar al instante. Por ejemplo: activar la autenticación con las diferentes redes sociales es tan simple como activar un checkbox.
Cada implementación de red social puede ser al menos un día de desarrollo, y con Auth0 cualquier otro nueva autenticación de proveedor esta disponible para ser usada, como por ejemplo la autenticación con Apple.
Auth0 también usa los estándares de la industria como OAuth 2.0 y OpenID Connect, además apoya con la creación de material y contenido de estos estándares así como material y contenido de otros estándares como JSON Web Tokens y Web Authentication, el estándar de autenticación para la web. Estas son algunas de las paginas mantenidas por Auth0:
También se pueden consultar todos los recursos disponibles del mundo de identidad y seguridad aquí https://auth0.com/resources/ y todo el código Open Source que crea o soporta aquí: https://auth0.com/opensource.
Si quieres implementar Auth0 hoy mismo en tu aplicación hay una serie de quickstarts que puedes mirar de acuerdo a la tecnología o proyecto que estes usando aquí: https://auth0.com/docs/quickstarts
Así como lo hablamos en este post es mejor preocuparse por el corazón de tu idea y app y dejar que todo un equipo de profesionales se encarguen de manejar toda la capa de identidad y seguridad de tu app. Algunas de las empresas que han confiado esta tarea son: Atlassian, Mozilla, Bluetooth, NVIDIA, Optimizely, etc. Se puede saber de estos customer aquí: https://auth0.com/customers.
Sin embargo, conocer cómo configurar las capas de autenticación usando middlewares como Passport.js te permitirá diferenciarte en el campo profesional. Este proceso lo aprenderemos en el Curso de Autenticación con Passport.js de la Escuela de JavaScript. Aprende más sobre capas de red.
que tal viable es hacerla en laravel todo esta lista de autenticacion.
Que bueno que al final, como conclusión, resaltes que es necesario saber como funciona una capa de autenticación. Nuestra app es primero, sabemos que existen ya capas diseñadas para autenticar a personas en nuestra app, por eso debemos enfocarnos en nuestro proyecto antes de preocuparnos a detalle como funcionan estas atenticaciones. Excelente artículo Guillermo, pronto tomaré este curso tan importante en la vida de un programador.
Excelente post, gracias! ¿Qué tan fácil es migrar de un sistema tradicional de autenticación a usar Auth0? Muchas veces se vuelve un tremendo dolor de cabeza integrar una app a otro sistema de autenticación.
Gracias!
Siempre se piensa que tener una idea es suficiente para poder iniciar, pero la verdad de todo lo que es necesario para poder crear un producto de sofware que nos retribuya es muy diferente.
Me gusto mucho el post.
Saludos
Recuerdo que en un proyecto universitario creamos un sistema que solicitaba inicio de sesión, y creo que no cumplimos ni con minimos de seguridad que se requerian para que el sistema fuera viable. Y es que crear un sistema de autenticación desde cero, que funcione y que cumpla con todas las capas de seguridad es complejo y requiere mucho tiempo. Investigare mas de esta libreria. Muy buen post. Gracias
Estoy haciendo un sistema web pagos online en laravel que algo me recomiendas?