Tener que crear cuentas para nuevos servicios es un proceso tedioso y lento. Entonces, ¿por qué no utilizar las credenciales, por ejemplo, de tu perfil de redes sociales? Eso es lo que el protocolo OAuth te permite hacer.
OAuth (Open Authorization) es un protocolo de autorización (y no de autenticación), que permite que aplicaciones de terceros accedan a recursos de un usuario en un servicio determinado. Este protocolo es utilizado por varios servicios en internet, que permiten/integran en la autenticación cuentas de Google, Facebook, Twitter, entre otros.
Por ejemplo, cuando te autentificas en una app o sitio web con las credenciales de Facebook, estás dando autorización para el acceso a tus datos. OAuth 2.0 es la versión más actualizada.
Componentes de OAuth
- Propietario del recurso – User
- Usuario que autoriza el acceso de la aplicación a su cuenta
- Cliente (Client Application)
- Aplicación que pretende acceder a la cuenta del usuario.
- Servidor de autorización (Authorization Server)
- Servidor que autentica al propietario del recurso y emite tokens de acceso
- Servidor de recursos (Resource Server)
- Servidor que verifica la identidad del usuario y proporciona los recursos solicitados
Ejemplo de Funcionamiento de OAuth
Vamos a considerar que un usuario está accediendo a una aplicación web y esta tiene integrada la autenticación de una red social. Para ello se realizan los siguientes pasos:
- El usuario solicita recursos en una app
- La app solicita autorización
- El usuario introduce sus credenciales
- La app envía las credenciales al servidor de autorización (utilizando las claves de OAuth)
- Si las credenciales son válidas, el servidor de autorización devuelve un Access Token
- La app envía el Access Token al servidor de recursos
- El servidor de recursos proporciona los recursos solicitados
- La app proporciona la información al usuario
Tipos de Tokens y Flujo de Autorización
OAuth utiliza varios tipos de tokens. Cada tipo de token tiene un papel específico y se utiliza en diferentes etapas del flujo OAuth. Dos de los tipos de tokens más utilizados son el Access Token (Token de acceso) y el Refresh Token (Token de renovación).
- Access Token es el token principal utilizado en OAuth para acceder a recursos protegidos. Cuando una aplicación recibe un Access Token, puede utilizarlo para realizar solicitudes a una API en nombre del usuario.
- Refresh Token se utiliza para obtener un nuevo Access Token sin que el usuario tenga que volver a autenticarse.
En relación a los tipos de flujo, también conocidos como “authorization flows”, son la forma en que el Cliente recibe el Access Token del Servidor de Autorización. Hay cuatro tipos de flujo:
- Flujo implícito
- Flujo de credenciales del propietario del recurso
- Flujo de credenciales del cliente
- Flujo de autorización de dispositivos
Ventajas de Usar OAuth
En relación a las ventajas de usar este protocolo, destacamos la seguridad, ya que las credenciales de acceso no se comparten con aplicaciones de terceros. Control, ya que el usuario puede controlar a qué recursos tiene acceso la aplicación y revocar el acceso en cualquier momento y también la flexibilidad, ya que permite integraciones entre diferentes plataformas y servicios de forma segura.
Sé el primero en dejar un comentario