oauth v2-rev
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
¿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.