¿Qué es exactamente OAuth (Autorización abierta)?
OAuth permite notificar a un proveedor de recursos (por ejemplo, Facebook) que el propietario del recurso (por ejemplo, usted) otorga permiso a un tercero (por ejemplo, una aplicación de Facebook) para acceder a su información (por ejemplo, la lista de sus amigos).
Si lo lees expresado claramente, entendería tu confusión. Entonces, vamos con un ejemplo concreto: ¡unirse a otra red social más!
Supongamos que tiene una cuenta de GMail existente. Decides unirte a LinkedIn. Agregar todos tus muchos, muchos amigos manualmente es cansador y propenso a errores. Puede que te hartas hasta la mitad o insertes errores tipográficos en su dirección de correo electrónico para invitarlos. Por lo tanto, puede tener la tentación de no crear una cuenta después de todo.
Enfrentando esta situación, LinkedIn tiene la Buena Idea (TM) para escribir un programa que agregue su lista de amigos automáticamente porque las computadoras son mucho más eficientes y efectivas en tareas aburridas y propensas a errores. Dado que unirse a la red ahora es tan fácil, no hay forma de que rechace tal oferta, ¿verdad?
Sin una API para intercambiar esta lista de contactos, tendrías que darle a LinkedIn el nombre de usuario y la contraseña a tu cuenta de GMail, dándoles demasiado poder .
Aquí es donde entra OAuth. Si su GMail admite el protocolo OAuth, LinkedIn puede pedirle que los autorice a acceder a su lista de contactos de GMail.
OAuth permite:
- Diferentes niveles de acceso: solo lectura VS lectura-escritura. Esto le permite otorgar acceso a su lista de usuarios o un acceso bidireccional para sincronizar automáticamente sus nuevos amigos de LinkedIn con sus contactos de GMail.
- Granularidad de acceso: puede decidir otorgar acceso solo a su información de contacto (nombre de usuario, correo electrónico, fecha de nacimiento, etc.) o a toda su lista de amigos, calendario y demás.
- Le permite administrar el acceso desde la aplicación del proveedor de recursos. Si la aplicación de terceros no proporciona un mecanismo para cancelar el acceso, estaría atrapado con ellos teniendo acceso a su información. Con OAuth, existe una disposición para revocar el acceso en cualquier momento.
¿Se convertirá de facto (estándar) en un futuro próximo?
Bueno, aunque OAuth es un importante paso adelante, no resuelve problemas si las personas no lo usan correctamente. Por ejemplo, si un proveedor de recursos proporciona un solo nivel de acceso de lectura y escritura a todos sus recursos a la vez y no proporciona un mecanismo para administrar el acceso, entonces no tiene sentido. En otras palabras, OAuth es un marco para proporcionar funcionalidad de autorización y no solo autenticación.
En la práctica, se ajusta muy bien al modelo de red social. Es especialmente popular para aquellas redes sociales que desean permitir "complementos" de terceros. Esta es un área donde el acceso a los recursos es inherentemente necesario y también es inherentemente poco confiable (es decir, tiene poco o ningún control de calidad sobre esas aplicaciones).
No he visto tantos otros usos en la naturaleza. Es decir, yo no sé de una firma de asesoramiento financiero en línea que tendrá acceso a sus registros bancarios de forma automática, aunque podría técnicamente ser utilizado de esa manera.