¿Cómo difieren OAuth 1.0 y 2.0?

OAuth 2.0 difiere de OAuth 1.0 en gran medida, sin embargo, ambos estaban destinados a abordar el mismo problema.

OAuth 2.0 logra abordarlo con mayor facilidad (para desarrolladores y aplicaciones cliente), y un marco bien definido con menor confusión y mayor flexibilidad y opciones, también OAuth 2.0 es un protocolo completamente nuevo y no es compatible con OAuth 1.0

OAuth 1.0

La seguridad está garantizada con el uso de la criptografía (especialmente las firmas digitales).

Todas las solicitudes al servidor estarían firmadas por el secreto del cliente provisto por el servicio de Autorización (ej. Facebook, Google)

Antes de firmar, todos los parámetros de solicitud se ordenarían y codificarían (esto molestó a los desarrolladores, ya que aumentó los gastos generales de implementación y depuración también resultó en una implementación compleja del lado del cliente).

Sin embargo, si lo usa a través de SSL (HTTPS), tiene la opción de usar “PLAINTEXT” como método de firma OAuth, lo que le ahorrará la molestia de toda la informática criptográfica.

El flujo

1. Su aplicación primero realiza una llamada API para un token de solicitud.

2. Usando el token de solicitud, construye una URL y envía al usuario a autorizar su aplicación (en un navegador).

3. Después de que el usuario lo permita / lo niegue, el Servicio redirige a la URL de devolución de llamada para que su aplicación sepa que el usuario ha aprobado / rechazado su aplicación, para que pueda continuar.

4. Su aplicación realiza una llamada para convertir su token de solicitud en un token de acceso:

5. Después de recibir el token de acceso, su aplicación ahora puede realizar solicitudes API normales.

OAuth 2.0

La criptografía se hizo de manera. Seguridad delegada a la capa de transporte (SSL).

Se definieron los roles adecuados: cliente (aplicación), servidor de autorización, servidor de recursos (servidor API), propietario de recursos (usuario), etc.

Introducción de tokens de actualización.

También proporcionó una mayor flexibilidad y opciones de varios tipos de subvención.

como

1. Código de autorización otorgado

Más ampliamente usado. La mayoría de los casos de uso son de este tipo.

Fluir:

a. La aplicación dirige al usuario a autorizar la página en el Servidor de autorización, la url contiene la identificación del cliente de la aplicación que la identifica.

si. El servidor autoriza y redirige a redirect_uri con un código de corta duración.

do. App Server realiza una llamada para enviar código y recibir tokens (acceso y actualización).

re. Ahora la aplicación puede hacer llamadas al servidor API para obtener recursos

2. Subvención implícita

Cuando se requiere token solo por un corto tiempo, la aplicación puede usar esto. Ejemplo para iniciar sesión a través de google o facebook.

el token se requiere solo durante la sesión actual.

El servidor de autorización envía directamente el token en lugar del código en el paso b.

3. Otorgamiento de credenciales del propietario del recurso

Cuando la aplicación ya tiene acceso al nombre de usuario y contraseña del usuario.

Hace una sola llamada a Auth. Servidor y recibe token.

4. Otorgamiento de credenciales del cliente

Cuando el cliente registrado quiere obtener el token por sí mismo

5. Actualizar token grant

Para actualizar los tokens de acceso (obtenidos en el tipo de concesión 1,3,4) pasando el token de actualización.

Por lo general, access_tokens tiene una fecha de caducidad (en este momento, alguna oferta de servicio nunca caduca access_tokens)

Puedes ver por ti mismo que, en esencia, OAuth 2.0 hace que sea mucho más fácil para un desarrollador comenzar a construir aplicaciones API

eliminando la criptografía (firmas), pasos menores para recibir tokens, definiciones de roles y múltiples opciones de grant_type.

Debido a más protocolos y definiciones estándar que rigen OAuth 2.0, es fácil construir plataformas para ellos.

Consulte un apigee o la plataforma de conector de Zoho. Cree y venda extensiones para Zoho (developer.zoho.com) que le permite crear un conector OAuth 2.0 para cualquier servicio en muy poco tiempo.

Además del punto de David sobre SSL, otra forma en la que difieren es que OAuth 1.0 solo admite un flujo basado en un navegador web, mientras que OAuth 2.0 admite múltiples flujos diseñados para diferentes entornos, desde una aplicación web tradicional hasta un dispositivo móvil.

OAuth 1.0 se basa en tener secretos compartidos entre el servidor y el consumidor que se utilizan para calcular las firmas. Esas firmas se utilizan para verificar la autenticidad de las solicitudes de API. La comunidad descubrió que implementar firmas correctamente era bastante difícil. OAuth 2.0 elimina las firmas y en su lugar se basa en SSL para proteger el secreto.