// February 6th, 2008 // No Comments » // seguridad, tecnología
Si el otro día hablábamos de qué es OpenID, ahora vamos a profundizar un poco en cómo funciona. Este post será un tanto más geek, así que podemos fijarnos en la descripción básica oficial:
“For geeks, OpenID is an open, decentralized, free framework for user-centric digital identity. OpenID takes advantage of already existing internet technology (URI, HTTP, SSL, Diffie-Hellman) and realizes that people are already creating identities for themselves whether it be at their blog, photostream, profile page, etc.”
En primer lugar, debemos entender que OpenID es un mecanismo para delegar el sistema de autenticación. Así, es de vital importancia contar con un proveedor de identidad que controle la información final.
En las primeras versiones, los identificadores consistían en URLs como las vistas en el post del otro día; en las últimas versiones, los XRI han sido incluidos en el protocolo, gracias a los cuales, la identificación puede hacerse mucho más sencilla que con una URL (normalmente larga y poco intuitiva). Esta simplicidad viene dada por los i-names, que tiene la siguiente forma:
=Mary.Jones@Jones.and.Company
Puesto que estos XRI en forma de i-names son reasignables o transferibles, cuando se utilizan como identificadores para el protocolo OpenID, siempre se transforman a i-numbers, que son únicos e irrepetibles para cada usuario, por ejemplo:
=!1000.a1b2.93d2.8c73@!1000.9554.fabd.129c
¿Pero cómo se produce la comunicación? Por un lado, tras recopilar el identificador (XRI o URL) de la página que requiere la información de registro, se utilizará el protocolo de búsqueda de servicios Yadis, quien se encargará de encontrar el documento XRDS asociado al identificador mencionado.
Dicho documento, también conocido como documento Yadis, contiene información de todos los servicios disponibles para identificar al usuario. Por ejemplo, de este documento XRDS se extraerían los siguientes servicios:
- http://www.myopenid.com/server
- http://www.livejournal.com/openid/server.bml
- http://mylid.net/liddemouser
Una vez elegido un servicio de entre los anteriores, se produce la verdadera comunicación entre la parte confidente y el proveedor de identidad, en uno de los posibles modos:
- checkid_immediate: si la comunicación es automática y transparente al usuario.
- checkid_setup: si el usuario es redirigido al proveedor de identidad para que se autentique manualmente.
La segunda opción es la más común ya que lo lógico es que el proveedor pida una identificación directamente al usuario. Tras esta identificacion (y la confirmación del usuario), las credenciales son enviadas hasta el sitio web inicial y se verifican, terminando así el proceso.
Fuente | OpenID en la wikipedia, Yadis Homepage