tutorial google oauth

google - ¿Qué es exactamente OAuth(Open Authorization)?



oauth tutorial (6)

¿Qué es exactamente OAuth (Open Authorization)?

Obtuve cierta información de

Pero quiero aprender y saber más. Estoy buscando información sobre el ciclo de vida. ¿Por qué la mayoría de las redes sociales dependen de este protocolo abierto?

¿Se convertirá de facto en un futuro cercano con las diversas tecnologías (por ejemplo, ASP.NET)?


¿Qué es exactamente OAuth (Open Authorization)?

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 claramente, entendería tu confusión. Así que vamos con un ejemplo concreto: ¡unirnos a otra red social!

Supongamos que tiene una cuenta de GMail existente. Usted decide unirse a LinkedIn. Agregar todos tus muchos, muchos amigos manualmente es tedioso y propenso a errores. Es posible que se canse hasta la mitad o inserte errores tipográficos en su dirección de correo electrónico para recibir una invitación. Entonces, es posible que tengas la tentación de no crear una cuenta después de todo.

Frente a esta situación, LinkedIn tiene la Good Idea (TM) para escribir un programa que agrega automáticamente su lista de amigos porque las computadoras son mucho más eficientes y efectivas en tareas tediosas y propensas a errores. Desde que unirse a la red ahora es tan fácil, no hay manera de que rechace tal oferta, ¿o sí?

Sin una API para intercambiar esta lista de contactos, tendría que darle a LinkedIn el nombre de usuario y la contraseña de su cuenta de GMail, lo que les daría demasiada potencia .

Aquí es donde entra en juego OAuth. Si su GMail es compatible con el protocolo OAuth, entonces LinkedIn puede pedirle que los autorice a acceder a su lista de contactos de GMail.

OAuth permite:

  1. Diferentes niveles de acceso: lectura y escritura VS de solo lectura. 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.
  2. 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 su lista completa de amigos, calendario y otras cosas.
  3. Le permite administrar el acceso desde la aplicación del proveedor de recursos. Si la aplicación de un tercero no proporciona un mecanismo para cancelar el acceso, usted se vería bloqueado al tener acceso a su información. Con OAuth, hay una disposición para revocar el acceso en cualquier momento.

¿Se convertirá en un factor de facto (estándar?) En un futuro próximo.

Bueno, aunque OAuth es un importante paso adelante, no resuelve los problemas si las personas no lo usan correctamente. Por ejemplo, si un proveedor de recursos solo proporciona un único nivel de acceso de lectura-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, encaja muy bien en el modelo de redes sociales. Es especialmente popular para aquellas redes sociales que quieren permitir "complementos" de terceros. Esta es un área donde el acceso a los recursos es intrínsecamente necesario y también inherentemente poco confiable (es decir, usted tiene poco o ningún control de calidad sobre esas aplicaciones).

No he visto tantos otros usos en la naturaleza. Quiero decir, no conozco una firma de asesoramiento financiero en línea que acceda a sus registros bancarios de forma automática, aunque técnicamente podría utilizarse de esa manera.


¿Qué es oAuth?

OAuth es simplemente un protocolo de autorización seguro que trata con la autorización de una aplicación de terceros para acceder a los datos del usuario sin exponer su contraseña. p.ej. (Inicie sesión con fb, gPlus, twitter en muchos sitios web ...) todos trabajan bajo este protocolo.

Partes involucradas

El protocolo se vuelve más fácil cuando conoces a las partes involucradas. Básicamente hay tres partes involucradas: oAuth Provider, oAuth Client y Owner.

  • oAuth Client (Aplicación que desea acceder a su credencial)
  • Proveedor de Outh (por ejemplo, Facebook, Twitter ...)
  • Propietario (la persona con Facebook, Twitter ... cuenta)

¿Cómo funciona?

Supuse que un escenario en el que un sitio web () necesita agregar el inicio de sesión con la característica de Facebook. Por lo tanto, Facebook es un proveedor de OAuth y el es oAuth Client.

  1. Este paso lo realiza el desarrollador de la aplicación . Al principio, Facebook (oAuth Provider) no tiene idea del (oAuth Client) porque no existe un vínculo entre ellos. Entonces, el primer paso es registrar con el sitio de desarrolladores de Facebook. Esto se hace de forma manual, donde los desarrolladores deben dar la información de la aplicación a Facebook, como el nombre de la aplicación, el sitio web, el logotipo, la URL de redirección (uno importante). Entonces se registra con éxito, tiene ID de cliente, secreto de cliente, etc. de Facebook y está en funcionamiento con OAUTH .

    2. Ahora cuando el usuario de hace clic en iniciar sesión con el botón fb . solicita Facebook con ClientId (fb lo usa para reconocer al cliente) y redirectUrl (fb regresará a esta url después del éxito). Por lo tanto, el usuario es redirigido a la página de inicio de sesión de Facebook. Esta es la mejor parte del usuario (propietario) que no está dando su credencial de Facebook a .

  1. Después del propietario, permite que tenga acceso a la información . Luego Facebook redirige a , junto con authcode usando redirectUrl proporcionado en el paso 2.
  2. Luego, contacta con Facebook junto con el código de autorización para asegurarse de que todo esté bien.
  3. Solo entonces, Facebook dará token de acceso a . Entonces token de acceso es utilizado por para recuperar la información del propietario sin usar contraseña. Este es todo el motivo de OAuth, donde acutal credenciales en nunca expuestos a aplicaciones de terceros.

Para más:

Video rápido

enlace web


OAuth sucedió cuando registramos la cuenta SO con el botón Facebook / Google.

  1. Aplicación (SO) que redirige al usuario a la URL de autorización del proveedor. (Mostrando una página web que le pregunta al usuario si desea otorgar acceso a la aplicación para leer y actualizar sus datos).
  2. El usuario acepta otorgar el proceso de solicitud.
  3. El proveedor de servicios redirecciona al usuario a la aplicación (SO), pasando el código de autorización como parámetro.
  4. SO intercambia el código de una concesión de acceso.

Fuente: proveedores de servicios OAuth1


En pocas palabras, OAuth es una forma de que las aplicaciones obtengan credenciales de su información sin obtener directamente su información de inicio de sesión de usuario en algún sitio web. Por ejemplo, si escribe una aplicación en su propio sitio web y desea que use datos de la cuenta de Facebook de un usuario, puede usar OAuth para obtener un token a través de una url de devolución de llamada y luego usar ese token para hacer llamadas a la API de Facebook para obtener su usa datos hasta que el token caduque. Los sitios web dependen de él porque les permite a los programadores acceder a sus datos sin que el usuario tenga que divulgar directamente su información y difundir sus credenciales en línea, pero aún así proporcionar un nivel de protección a los datos. ¿Se convertirá en el método de facto de autorización? Tal vez, ha estado ganando mucho apoyo recientemente de Twitter, Facebook y otros sitios similares en los que otros programadores quieren crear aplicaciones basadas en datos de usuarios.


OAuth es un estándar abierto para la autorización, comúnmente utilizado como una forma para que los usuarios de Internet inicien sesión en sitios web de terceros utilizando sus cuentas de Microsoft, Google, Facebook o Twitter sin exponer su contraseña.


Oauth definitivamente está ganando impulso y se está volviendo popular entre las API empresariales también. En el mundo impulsado por las aplicaciones y los datos, las empresas están exponiendo las API cada vez más al mundo exterior en línea con Google, Facebook y Twitter. Con este desarrollo se forma un triángulo de 3 vías de autenticación

1) Proveedor de API: cualquier empresa que expone sus activos por API, como Amazon, Target, etc. 2) Desarrollador: el que crea aplicaciones móviles / otras sobre estas API 3) El usuario final: el usuario final del servicio proporcionado por el dicen usuarios registrados / invitados de Amazon

Ahora, esto desarrolla una situación relacionada con la seguridad (estoy enumerando algunas de estas complejidades) 1) Usted, como usuario final, desea permitir que el desarrollador acceda a las API en su nombre. 2) El proveedor de API tiene que autenticar al desarrollador y al usuario final 3) El usuario final debe poder otorgar y revocar los permisos por el consentimiento que le han otorgado 4) El desarrollador puede tener un nivel de confianza variable con el proveedor de API, en que el nivel de permisos que se le da es diferente

El Oauth es un marco de autorización que trata de resolver el problema mencionado anteriormente de forma estándar. Con la importancia de las API y las aplicaciones, este problema será cada vez más relevante y cualquier estándar que intente solucionarlo, sea éste u otro, será algo que le interesará como proveedor / desarrollador de API e incluso como usuario final.