Diferencias entre OpenID y OAuth

Motivado por el post de Eduard Tomas acerca de “Integrar OAuth en tu aplicacion ASP.NET MVC”, escribo este post. Existe mucha confusion (inicial) en lo que se refiere a OpenID y OAuth y a ella contribuyen autores que las tratan como sinonimos implicitos en cuanto a seguridad se refiere, pero ambas son cosas totalmente diferentes y en este post quiero explicarles esas diferencias con un par de ejemplos:

Escenario con OpenID:

  1. El usuario desea ingresar al sitio dospatitos.com con su cuenta
  2. dospatitos.com, que es la parte que confia (Rely Party), solicita al usuario el identificador OpenID (las credenciales OpenID las pueden crear en cualquiera de muchos sitios gratuitos, yo uso myopenid, al final doy un link a un sitio con un directorio de proveedores de cuentas OpenID)
  3. El usuario ingresa su identificador OpenID
  4. El sitio dospatitos.com redirecciona al usuario al sitio del proveedor de la cuenta OpenID, en mi caso siempre me lleva obviamente a myopenid.com
  5. El usuario se autentifica (autentica o como quieran) dentro del sitio del proveedor de OpenID
  6. Una vez que la autenticacion es exitosa, el proveedor de OpenID redirecciona al usuario de regreso al sitio dospatitos.com
  7. Finalmente dospatitos.com permite al usuario ingresar al sitio y a los datos de su cuenta en el mismo.

Claramente, se muestra que OpenID esta relacionado directamente a delegar la autenticacion.

Escenario con OAuth:

  1. El usuario ya se encuentra autentificado en dospatitos.com, pero desea (por alguna razon extraña) importar algun datos (en este caso fotografias) de un segundo sitio llamados misfotos.com, en este caso debemos observar que el custodio de esos datos/recursos, se llama Site Provider y no entregara esos datos hasta que este seguro a quien se los dara, obviamente el dueño de esos datos.
  2. El sitio dospatitos.com (que en el lenguaje de OAuth se llama Consumer), redirecciona al usuario al Site Provider, en este caso misfotos.com
  3. El usuario, debe autentificarse ante misfotos.com (para autentificarse misfotos.com podria estar usando OpenID u otro mecanismo de autenticacion)
  4. El sitio misfotos.com le presenta una pantalla al usuario informandole que el sitio dospatitos.com desea acceder a sus fotografias.
  5. El usuario hace su seleccion, es decir elige autorizar el proceso.
  6. El sitio misfotos.com, redirecciona al usuario de regreso al sitio dospatitos.com
  7. El sitio dospatitos.com, recupera las fotografias desde misfotos.com
  8. Finalmente el sitio dospatitos.com informa al usuario que la importacion fue exitosa.

En este caso tambien es bastante claro que OAuth se trata de autorizacion, el sitio dospatitos.com accedera a recursos almacenados en misfotos.com sin necesidad de que entre llos fluyan mis credenciales ni de uno ni de otro sitio.

Directorio de proveedores OpenID: http://openiddirectory.com/openid-providers-c-1.html

Espero que esta aclaracion les sea de utilidad.

Un abrazo.

Una respuesta a “Diferencias entre OpenID y OAuth”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *