Openid El Futuro De La Autentificacion

Una de las primeras cosas que hice cuando tuve mi tarjeta de crédito internacional fue registrar mi dominio personal, y la principal razón por la que lo hice fue para tener mi propio email, independiente de cualquier proveedor de mails.

¿Por qué tener un email igual a mi nombre?. Varias razones: para que sea independiente de cualquier proveedor (Gmail, Yahoo, etc) y para que sea permanente (asumiendo que no voy a cambiar de nombre, claro está :)). Y así, una vez que tuve mi propio dominio, empecé a usar mi nuevo email personal hosting-free (libre de proveedores). En este momento, en particular, redirijo todo mi correo a Gmail porque me sirve (1. para leer los mensajes desde el celular y 2. como filtro de Spam) pero lo uso solo porque me conviene, no porque esté atado a Google. Actualmente Gmail es el servicio web de mail más poderoso y (para muchos) el único realmente usable. Pero mañana ¿quién sabe?, ¿seguirá siendo Gmail?. A mi realmente no me importa porque, cuando Gmail deje de servirme, simplemente cambio la redirección de mi casilla personal a un nuevo proveedor y listo, me olvido de Gmail. Asi nomás, de la noche a la mañana, como quien se cambia un par de zapatos. Esto me permite tener una dependencia nula con mi proveedor de mail. Y eso es una gran cosa, ya que el e-mail es, actualmente, uno de los mecanismos más fuertemente usados por los sitios para atar a los usuarios.

Afortunadamente, el email está regido por un protocolo abierto cuyo diseño permite este tipo de libertades, aunque mucha gente no las aproveche.

¿Pero que tiene que ver todo esto con autentificación?. Que, hoy en día, dicha libertad también existe en el terreno de la autentificación y su nombre es OpenID.

¿Quién mejor para probar tu identidad que tú mismo?. Ese es el concepto que está detrás de OpenID y (aunque suena un poco absurdo al principio) resulta completamente lógico, sobretodo en Internet donde uno se identifica por los sitios que posee (blogs, sitios personales, etc).

El funcionamiento es el siguiente: OpenID (que es un protocolo, no un sitio) define un mecanismo de autentificación que permite a un sitio X verificar la identidad de un navegante a través de otro sitio Y que dicho navegante utiliza para probar su identidad. Los sitios utilizados para probar la identidad son llamados Proveedores de Identidad, y son los únicos que "saben" la contraseña del usuario. En realidad el funcionamiento es algo más complejo, pero básicamente es eso. Los que estén familiarizados con Paypal observarán una gran similitud. La diferencia es que OpenID es un protocolo y no un sitio que centraliza las autentificaciones (como Paypal, que centraliza todos los pagos).

Esta separación permite varias cosas, entre ellas:

  • tener un único usuario y contraseña para todos los sitios que visitas en Internet (blogs, foros, etc)
  • liberar a los sitios que brindan los servicios del trabajo de mantener la autentificación de sus usuarios, lo cual hace el sistema más seguro a nivel global (siempre y cuando el Proveedor de Identidad sea confiable, claro está)
  • centralizar la seguridad y la confianza en un solo sitio (el Proveedor de Identidad) lo cual es un gran alivio para el usuario

Aunque, si bien esto permite independizarnos de las autentificaciones de los sitios, igualmente nos genera una dependencia (y mucho más fuerte) con nuestro Proveedor de Identidad. ¡Muy cierto!, pero aquí es donde viene la magia de OpenID. Y dicha magia se llama delegación. El protocolo OpenID permite delegar el Proveedor de Identidad que proveerá nuestra autentificación, lo cual nos permitirá cambiarlo a conveniencia, cuando nos plazca.

Veamos un ejemplo. Acabo de registrarme un usuario en un proveedor de identidad que me inspiró confianza (MyOpenID). Luego de registrarme ellos me dieron una URL (pablohoffman.myopenid.com) que sería mi "usuario OpenID". Es decir, cuando vaya a entrar a un sitio X (que soporta OpenID) tengo que loguearme con dicha URL (en lugar del usuario) y luego autentificarme (con mi contraseña) en mi proveedor de Identidad (MyOpenID). Finalmente, MyOpenID informará al sitio X que yo soy quien digo ser, y el sitio X me "dejará pasar".

Pero la gracia (y aquí viene la cereza de la torta) es que OpenID permite delegar las URLs de autentificación. Por lo tanto, yo voy a utilizar la URL http://pablohoffman.com como usuario OpenID y luego la delegaré a la URL del Proveedor de Identidad que esté usando (actualmente, pablohoffman.myopenid.com). Si en algún momento MyOpenID deja de ser santo de mi devoción, lo único que tengo que hacer es cambiar a otro que me inspire más confianza y actualizar mi OpenID (http://pablohoffman.com) para que "apunte" a la URL de mi nuevo proveedor. Asi de simple. Y no tengo que cambiar nada en todos los sitios de Internet, ya que para ellos voy a seguir siendo http://pablohoffman.com, como siempre. Maravilloso, ¿no?. Un protocolo libre en su máxima expresión. ¡Cero dependencia!.

OpenID es algo que Internet pedía a gritos hace tiempo, un protocolo de autentificación verdaderamente libre (como no podía ser de otra manera).

Estoy seguro de que está aquí para quedarse ya que, por más intereses económicos que tenga en contra, el sistema simplemente es demasiado bueno como para no triunfar. Seguramente aparecerán sitios comerciales que te cobren por brindarte la identificación y lo respalden con su prestigio (similar a como funciona la web segura hoy en día). De hecho, la "provisión de identidad" como servicio de Internet es algo nuevo. También habrán universidades que identifiquen a sus alumnos, empresas que identifiquen a sus empleados y, por supuesto, siempre habremos los que nos gustará autoidentificarnos con nuestro propio sitio (porque no confiamos en nadie :)). Pero el concepto y la filosofía detrás de OpenID no cambia.

¡Larga vida a OpenID!

Nota: Este artículo tiene fines únicamente divulgativos. No pretende ser exhaustivo o técnico. Pueden encontrar más información sobre OpenID en los siguientes enlances: