oauth v2-rev

18
OAuth Grupo #3 Gustavo Ruiz 092-07-1 Karla Mesarina 092-07-323 David González 092-07-2059 Rodrigo De Matta 092-08-200 Walter García 092-08-411 Juan Manuel Rizzo 092-08-7303 Gerber Flores 092-03-1280 Adolfo Melgar 092-93-35326 Silvia Olivia Milián 092-06-19343

Upload: karla-mesarina

Post on 20-Aug-2015

624 views

Category:

Documents


0 download

TRANSCRIPT

OA

uth

Grupo #3 Gustavo Ruiz 092-07-1 Karla Mesarina 092-07-323 David González 092-07-2059 Rodrigo De Matta 092-08-200 Walter García 092-08-411 Juan Manuel Rizzo 092-08-7303 Gerber Flores 092-03-1280 Adolfo Melgar 092-93-35326 Silvia Olivia Milián 092-06-19343

OA

uth

¿Qué es OAuth?

• OAuth (Open Authorization) es un estándar web emergente y abierto que sirve para autorizar un acceso limitado a las aplicaciones y los datos.

• Define un mecanismo para que una aplicación web (cliente), pueda acceder a la información de un usuario en otra aplicación (proveedor), sin que esta tenga que informar a la primera del usuario y contraseña.

• OAuth es una metodología para identificación mediante APIs genérica y de implementación gratuita.

Un poco de historia

• OAuth comenzó en noviembre de 2006, cuando Blaine Cook desarrollaba la implementación de OpenID para twitter.

• Mientras tanto, Magnolia necesitaba una solución que permitiera a sus miembros con OpenID autorizar widgets del dashboard para acceder a su servicio. Entonces, Cook, Chris Messina y Larry Halff de Magnolia se reunieron con David Recordon para discutir el uso de OpenID con las API de Twitter y Magnolia para delegar la autenticación.

• Llegaron a la conclusión de que no existía ningún estándar abierto para delegar acceso a las API.

Un poco de historia

• En abril de 2007 se creó el grupo de discusión de OAuth, para que el pequeño grupo de implementadores escribiera un borrador de propuesta para un protocolo abierto.

• DeWitt Clinton de Google se enteró del proyecto OAuth y se mostró interesado en apoyar el esfuerzo. El equipo terminó el borrador inicial de la especificación en julio de 2007.

• Eran Hammer-Lahav se unió y coordinó las diversas contribuciones a OAuth, creando una especificación más formal. El borrador definitivo Oauth Core 1.0 se publicó el 3 de octubre de 2007.

Pone la administración de delegación web en las

manos del verdadero propietario de los

recursos.

El usuario hace la conexión entre sus cuentas en diferentes

aplicaciones web sin la participación directa de los

administradores de seguridad en cada sitio respectivo.

¿Por qué es importante?

Promueve un modelo con menos privilegios, lo que

permite a un usuario otorgar acceso limitado a sus aplicaciones y datos.

Es importante reconocer que OAuth es sólo un componente de una solución de seguridad y control de

acceso a API completa.

Hay muchos estándares cerrados que hacen esto, por ejemplo Google AuthSub o las APIs de Flickr y Facebook.

Además….

Uno de los objetivos principales de OAuth es unificar en un estándar abierto este tipo de comunicaciones entre aplicaciones web, de forma que no se articulen mediante protocolos propietarios.

• Proporciona un método para los clientes para acceder a los recursos del servidor en nombre del propietario de un recurso (como un cliente diferente o un usuario-final).

• Se proporciona también un procedimiento para los usuarios finales para autorizar terceros a sus recursos de servidor sin compartir su credenciales (normalmente, un nombre de usuario), utilizando redirecciones de usuario-agente.

OAuth (características)

Un servidor HTTP capaz de aceptar Solicitudes-OAuth

autenticadas.

Un recurso de acceso restringido que se puede

obtener a partir del servidor mediante una petición Oauth.

Un cliente HTTP , capaz de hacer Solicitudes-OAuth

autenticadas.

Terminología

CLIENTE SERVIDOR RECURSO

PROTEGIDO

Una entidad capaz de acceder y controlar recursos protegidos

mediante el uso de credenciales para la autenticación con el servidor.

Las credenciales son un par de un identificador único y un juego secreto compartido. OAuth define tres clases de

credenciales: cliente, temporal y token, que son usadas para identificar y autenticar el cliente que hace la solicitud, la

solicitud de autorización, y la concesión de acceso, respectivamente.

Terminología

PROPIETARIO DEL

RECURSO

CREDENCIALES

Token - OAuth

• Un identificador único emitido por el servidor y utilizado por el cliente para asociar peticiones autenticadas con el propietario del recurso cuya autorización se solicite o que haya sido obtenida por el cliente.

• Los tokens tienen una coincidencia de secreto compartido que es utilizado por el cliente para establecer la propiedad de la razón, y su autoridad para representar al propietario del recurso.

• Consumidor: Cliente • Proveedor de servicios:

Servidor • Usuario: Propietario del

recurso

• Clave del Consumidor y Secreto: Credenciales de cliente

• Solicitud de Token y secreto: Credenciales temporales

• Token de acceso y secreto: Credenciales de token

Token - OAuth

La especificación original de la comunidad utiliza un poco diferente la terminología que se asigna a estas especificaciones:

Versión 1.0 Evolucionó de manera muy rápida debido a la demanda, su adopción por aplicaciones sociales líderes le permitió una amplia exposición. Goza de un amplio soporte, con bibliotecas disponibles en la mayoría de los idiomas.

Versiones

Versión 1.0a Bien diseñada y bastante completa, pero sólo para un pequeño conjunto de casos de uso. Hace una cosa, y la hace muy bien. Tiene algunas complejidades adicionales que han impedido que sea ampliamente aceptada. Transfiere la complejidad a los clientes, particularmente en el procesamiento criptográfico.

Versión 2.0 Intenta generalizar la implementación original para simplificar el desarrollo de los clientes, mejorar la experiencia general del usuario y escalar sus implementaciones. Esto requirió cambios significativos, no compatibles con versiones anteriores. Ahora el servidor de autorizaciones está separado del servidor de recursos.

Versiones

Intenta ofrecer soporte a tres perfiles de clientes: • Aplicaciones web convencionales, • Aplicaciones dentro de un agente de

usuario (es decir, un navegador web) y • Aplicaciones nativas (como una

aplicación de teléfono móvil, un decodificador o incluso una consola de juegos).

Cada uno de estos perfiles tiene diferentes capacidades en términos de interacción entre propietarios de recursos, servidores de autorizaciones y recursos protegidos.

OA

uth

OAuth 2.0 – Flujo entre recursos y autorizaciones

OA

uth

OAuth 1.0, 2.0 – Flujo de Autorización

OA

uth

OAuth 1.0, 2.0 – Ejemplificación de Proceso