Archivado en la categoría (OAuth) por Teresa
Publicado el 28-10-2013

Como ya comentamos en anteriores entradas, OAuth es un protocolo que permite que una aplicación externa pueda obtener acceso de forma limitada a un servicio web que puede ser de su misma propiedad o de un usuario externo.

En general, el acceso a los recursos se realiza mediante la presentación de un token de acceso, el cual ha sido obtenido por el cliente (la aplicación que realiza las peticiones a los recursos) presentando unas credenciales que representan la autorización del dueño del recurso (otro usuario o la misma aplicación).

En el RFC donde se define la nueva versión del protocolo, OAuth 2.0 (RFC 6749), podemos encontrar diferentes casos de uso, los cuales se denominan Grants.

Existen cuatro tipos predefinidos, aunque es posible implementar extensiones según unas directivas generales definidas en el estándar.

En esta entrada comentaremos los usos de cada uno de estos grants predefinidos, así como algunas de sus características principales.

  • Authorization Code Grant: Este Grant define cómo el cliente redirecciona al dueño del recurso a un servidor de autorización que ofrecerá un código de autorización al cliente. Ese código de autorización será la credencial presentada por el cliente para obtener el token de acceso.
  • Implicit Grant: El cliente obtiene un token de acceso directamente, sin existir un código de autorización. Suele utilizarse para librerías javascript. Uno de sus inconvenientes es que la validación del cliente se realiza mediante la URI a la que se enviará el token, por lo que al no incluir autenticación del cliente, la seguridad puede verse comprometida.
  • Resource Owner password credentials: Las credenciales que se utilizan son el usuario y la contraseña del usuario. Este perfil está recomendado sólo para casos en los que existe un grado elevado de confianza entre el dueño del recurso y el cliente y cuando el cliente es capaz de obtener las credenciales del propietario del recurso.
  • Client Credentials Grant: Este grant es utilizado en casos donde el objeto de la autorización se limita a los recursos protegidos bajo el control del cliente, es decir; cuando el cliente es el propietario del recurso (actuando en su nombre) o el cliente realiza una petición de acceso a recursos protegidos basados en una autorización previa establecida con el servidor de autorización.
Escribe un comentario

You must be logged in to post a comment.