Oauth (Open Authorization) es un protocolo de autorización, aunque es usado comúnmente para implementar escenarios de delegación de accesos.
Veamos, seguramente te has encontrado con portales en internet que al momento de pedir un registro de usuario y poder así tener acceso a sus recursos, te permiten conseguir acceso a través de tus cuentas previamente registradas en plataformas como Google, Facebook o Twitter, pues bien, dicho escenario es un típico caso que se logra implementar usando Oauth. En este pequeño texto te explicaremos su funcionamiento básico.
Se considera que una de las razones por las que se crea OAuth fue para lograr un acceso único entre varios aplicativos, es por eso que se define como uno de los principales protocolos usados por las grandes empresas para las soluciones CIAM (Consumer Identity and Access Management), ya que se puede usar para autorizar usuarios, así como para permitir el acceso a una aplicación.
OAuth se encarga de definir el flujo, el medio y las reglas para acceder a ciertos recursos en un servidor, es decir se encarga de otorgar autorizaciones entre sitios sin poner en riesgo la identidad.
En OAuth se definen diferentes roles:
- Propietario de Recurso: Es el usuario que da autorización a una aplicación para acceder a su cuenta.
- Cliente: Se define como la aplicación que desea acceder a la cuenta de Usuario, esta aplicación puede ser Web, Móvil, de escritorio u otra.
- Servidor de Recurso: Se define como el servidor que aloja el recurso protegido al que se quiere acceder.
- Servidor de Autorización: Es el responsable de gestionar las peticiones de autorización, verifica la identidad de los usuarios y es el encargado de emitir los tokens de acceso a la aplicación cliente.
OAuth funciona de la siguiente forma:
- El cliente solicita acceso al Servidor de Autorizaciones para ingresar al recurso protegido.
- El servidor de Autorizaciones solicita la autorización al propietario del recurso.
- Si el Propietario del Recurso autoriza al cliente, el Servidor de Autorizaciones le otorga un token de autorización.
- El Cliente envía el token al Servidor de Recursos.
- El servidor de recursos valida el token enviado por cliente y una vez validado el token el servidor de recursos otorga el acceso al cliente al recurso protegido.
Una de las ventajas de usar este protocolo es que al desarrollar una aplicación no se tiene la necesidad de almacenar información sensible como el usuario y la contraseña, ya que todo el proceso de autorización se realiza a través del servidor de autorizaciones por lo tanto la aplicación a través de la API solo se encargaría de validar tokens otorgados por el Servidor de Autorizaciones.
Otra de las ventajas de utilizar este protocolo hoy en día es la simplificación para poder acceder a diferentes aplicativos sin compartir las credenciales reales de un usuario y así poder tener la alternativa de implementar un inicio de sesión único.
En conclusión, OAuth nos facilita la autorización del cliente usando un token de acceso hacia el recurso protegido sin acceder ni gestionar la información del usuario, garantizando también la seguridad de los datos.
En Clear Intelligence podemos ayudarte a implementar este y otros mecanismos que ayuden a reducir riesgos de seguridad, solicítanos una asesoría sin costo.