que hay geeks?!

Cuando estamos desarrollando nuestra aplicación, muchas veces necesitamos acceder a servicios de terceros, bien mediante una API u otro sistema, cuando estos servicios nos exigen estar registrados, necesitamos autenticar nuestra aplicación/usuario en ese servicio de terceros,  es en ese momento, cuando entra en juego OAuth 2.0.

Bien, entonces, ¿qué es OAuth 2.0?

OAuth 2.0 es un protocolo de autorización estándar, Open Authorization (OAuth), que nos permite como clientes autenticaciones entre aplicaciones web, bien sean páginas, APPs, u otros servicios con terceros (servidores). De esta manera, podemos usar la API deseada autenticando quienes somos.

¿Por qué OAuth 2.0?

Es la mejor manera de identificarse como usuario ante aplicaciones de terceros, además, facilitar a las aplicaciones la autenticación del usuario y gestión de permisos y comunicación de datos.

¿Cómo funciona?

Lo primero es que nosotros como clientes, estemos registrados en el servidor que proporciona los recursos. Por ejemplo, estar registrados en Facebook.

Una vez estemos dados de alta, es cuando usando una aplicación de terceros, solicitamos acceso a la información de Facebook, en este paso es cuando se produce la autorización Grant necesaria para completar la autenticación OAuth 2.0, junto con las credenciales del cliente.

Esta acción genera un token de autenticación con una fecha de caducidad, que durante el tiempo que esté activo, permitirá el acceso al contenido autorizado.

Casos de uso

Por ejemplo, un usuario de Facebook quiere publicar información usando una tercera aplicación, mediante OAuth 2.0 puede dar permisos a esta aplicación para que únicamente pueda generar contenido en su muro. En cualquier momento, se puede revocar el acceso.

En este caso, los roles serían:

  1. Propietario: Usuario de Facebook que genera el contenido
  2. Cliente: Aplicación por la que se va a generar y publicar el conteido
  3. Proveedor: Facebook

Se podría establecer el mismo caso, pero esta vez, queremos usar el login que ofrece Facebook, google, etc… mediante el cual podemos registrarnos en otra plataforma sin introducir más datos que nuestro login de una de estas redes.

En este caso, también usaríamos el sistema OAuth 2.0 para autenticar la comunicación.

 

¿Y en Laravel…?

El ecosistema de Laravel tiene unos cuentos paquetes para poder generarte tu propio servidor como puede ser el caso de https://github.com/lucadegasperi/oauth2-server-laravel.

A partir de la versión Laravel 5.5 viene incorporado de base con Passport. Te permite generar y configurar de manera muy sencilla y con comandos artisan casi todo lo necesario.

 

Si aún no usas OAuth para comunicar tus aplicaciones, este es el mejor momento para empezar!

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *