March 08, 2009

Usar tu web como proveedor de identidad

¿Qué es openid?

OpenID es un sistema de identificación descentralizado con el que el usuario puede identificarse en cualquier web usando una URL como identidad. Gracias a esto el usuario no tendrá que crearse una nueva cuenta en cada web que quiera registrarse. En su lugar, tendrá que disponer de un identificador creado en un servidor que verifique OpenID, llamado proveedor de identidad.

Actualmente existen numerosos proveedores en los que crear tu identidad. Incluso es posible, que sin saberlo, ya tengas una, ya que servicios como Blogger (bajo la identidad usuario.blogspot.com), Wordpress.com (usuario.wordpress.com) o Yahoo! (openid.yahoo.com) son proveedores de identidad.

Sin embargo, si no quieres utilizar un proveedor de terceros y utilizar el tuyo propio, dispones de varias alternativas para ello. Aquí vamos a explicar las tres formas mas sencillas de hacerlo.

1. Delegación de autenticación

La especificación OpenID 1.1 permite que si el servidor del usuario no puede ejecutar un proveedor de identidad o desea utilizar uno que se encuentra en un servidor diferente, este puede delegar su autenticación a otro servidor. Por ejemplo, si queremos que nuestra web http://www.miweb.com sea nuestro identificador pero no disponemos de un proveedor de identidad en ella, podemos delegar la autenticación a otro proveedor, por ejemplo Blogger o Wordpress.com.

Para ello, hay que añadir los dos siguientes tags (ejemplo para delegar en Blogger) en la sección HEAD de nuestra web:

<link rel="openid.server" href="http://www.blogger.com/openid-server.g"/>
<link rel="openid.delegate" href="http://miblog.blogger.com"/>

Si quiere delegar en cualquier otro proveedor, tan solo debes cambiar el nombre del servidor en openid.server y la URL de tu identidad en openid.delegate.

2. Ejecutar tu propio servidor de OpenID

Existen varias herramientas para instalar tu servidor de OpenID pero nosotros utilizaremos phpMyID al ser bastante simple y fácil de configurar (sólo dos archivos). Lo único que tienes que hacer es descargarlo y subir los dos ficheros a tu servidor, configurar tu usuario y contraseña en el MyID.config.php y colocar las dos etiquetas de delegación en tu web del siguiente modo:

<link rel="openid.server" href="http://tuweb/MyID.config.php"/>
<link rel="openid.delegate" href="http://tuweb/MyID.config.php"/>

De esta forma dispones de tu propio servidor OpenID y no dependes de soluciones de terceros.

3. Instalar el plugin OpenID para Wordpress

Si estás utilizando Wordpress.org para tu web, puede instalar el plugin OpenID. Este plugin permite a los visitantes de tu web autenticarse en ella mediante OpenID pero a partir de la versión 3.0 también ofrece la posibilidad de actuar como proveedor de identidad. Para ello sólo tienes que instalar este plugin y activar la opción de proveedor de identidad en su configuración. Así de sencillo.

Todas estas soluciones son monousuario, es decir, que sólo sirven para identificar a un único usuario. Para soportar múltiples identidades, habrá que instalar algún otro servidor como Clamshell o SimpleID entre otros.