Lo hice y lo entendí

El blog de Vicente Navarro
07 may

OpenID en WordPress.org y cómo usar WordPress.com como proveedor de identidad

Desde hoy, Lo hice y lo entendí ya soporta OpenID (gracias al plugin WP-OpenID). Para ti, estimado visitante de este blog, eso significa que en el formulario para dejar comentarios, al lado del cuadro de texto para dejar la URL, ahora puedes ver el siguiente símbolo:

Con lo que esa parte del formulario queda así:

Cuando en ese recuadro escribas una URL habilitada como proveedor de identidad OpenID y hagas click sobre el botón de “enviar el comentario”, el navegador te redirigirá a la página del proveedor de OpenID para que allí aceptes enviar la identidad al blog. En el proveedor de OpenID ya hay que haber iniciado la sesión (log on) de antemano, porque si te dejaran hacerlo en ese momento podríamos ser víctimas de phishing. Entre los proveedores de OpenID más conocidos, encontramos a Blogger y a WordPress.com. Sus pantallas de confirmación del envío de OpenID son así:

Podemos ver que en ambos casos tenemos la opción de aceptar por defecto el envío de la identidad OpenID a un blog determinado para que no nos lo tenga que preguntar cada vez.

El nombre y el e-mail que hayas puesto en el comentario se reemplazarán por los suministrados por el proveedor de OpenID y, finalmente, el comentario se mostrará así:

Al lado de tu nombre en el comentario aparecerá el símbolo de OpenID indicando que el que ha dejado ese comentario seguro que eres tú. Es lo que el proveedor de OpenID nos asegura siempre que nadie haya robado las contraseñas al usuario legítimo, claro.

Por tanto, si tú, usuario de WordPress.com, Blogger o de cualquier otro proveedor de OpenID, decides usar tu identificador de OpenID, que es una URL, en mi blog, y aceptas proporcionar tu identidad con OpenID, todos sabremos que eres tú, la persona asociada a esa página web, y no otra persona, la que realmente está dejando ese comentario.

¿Pero qué pasa conmigo? A mí también me gustaría dejar comentarios en los blogs de otra gente usando la URL de mi blog y OpenID. Podría hacerlo fácilmente con http://lohiceyloentendi.wordpress.com/ o con http://lohiceyloentendi.blogspot.com/ porque tanto Blogger como WordPress.com son proveedores de identidad OpenID, pero yo quiero usar la URL de mi blog: http://www.vicente-navarro.com/blog/. Usando PHP, Ruby, Python, Java, etc. podríamos convertir nuestro blog en un proveedor de identidad OpenID, tal y como podemos leer en Run your own identity server o en OpenID for non-SuperUsers (usa phpMyID) o, por ejemplo, Iñaki Silanes lo hizo con el plugin de WordPress.org WP-Yadis (WP-Yadis, que parece que tiene algún problema con WordPress 2.5). Pero también podemos usar nuestra cuenta de WordPress.com.

Es bastante probable que una gran mayoría de usuarios de WordPress.org tengan ya una cuenta en WordPress.com, ya que es necesaria para obtener una “API Key”, imprescindible para usar plugins como el Akismet o el WordPress.com Stats en un blog WordPress.org. Usando esa misma cuenta y creando un blog en el dominio wordpress.com, como lohiceyloentendi.wordpress.com, podemos delegar las funciones de proveedor de identidad OpenID en los servidores de WordPress.com.

Para ello, lo único que tenemos que hacer es lo que leemos en Provide wordpress.com’s OpenID Identity Server to local installs as a plugin y que coincide con lo que la especificación OpenID 1.1, sección 3.1.1. Delegating Authentication nos detalla. También lo leemos en OpenID Delegation. Sólo tenemos que poner algo como lo siguiente:

<link rel="openid.server" href="http://USERNAME.wordpress.com/?openidserver=1" />
<link rel="openid.delegate" href="http://USERNAME.wordpress.com/" />

en la sección <head></head> de nuestra página, normalmente en el fichero header.php de la mayoría de los temas. En mi caso:

<link rel="openid.server" href="http://lohiceyloentendi.wordpress.com/?openidserver=1" />
<link rel="openid.delegate" href="http://lohiceyloentendi.wordpress.com/" />

Con esta configuración, cuando yo vaya al blog de otra persona a dejar un comentario y use la URL de mi blog, el servidor web donde esté alojado el blog cargará mi página http://www.vicente-navarro.com/blog/ y leerá las líneas anteriores para saber cuál es mi servidor de OpenID. A continuación, irá al servidor de WordPress.com para pedirle mi identidad y, para ello, redirigirá la página temporalmente a WordPress.com como hemos visto en las capturas anteriores para que nosotros confirmemos si queremos suministrar nuestra identidad OpenID (en este caso, la que tengamos en el perfil del usuario de WordPress.com, aunque nos deja cambiarla) a ese blog.

Una ventaja de usar WordPress.com como servidor de identidad OpenID es que, como vemos en la captura anterior, nos presenta un formulario cada vez por si queremos modificar los datos del perfil que mandamos. Blogger, por ejemplo, no permite esto.

Finalmente, OpenID también sirve para iniciar la sesión en páginas usando sólo nuestra URL asociada a OpenID. Por ejemplo, tras instalar el plugin WP-OpenID, ya puedo iniciar la sesión en mi blog usando sólo mi URL:

Como ya he comentado anteriormente, tengo que haber iniciado la sesión de antemano en WordPress.com o me encontraré con este error:

WordPress.com

You need to sign in

You need to sign in to wordpress.com to complete this process.

You should use a bookmark or type in the address to do this. This page does not contain any links, to protect you from phishing.

También tengo que haber asociado esa URL al perfil de mi usuario del blog:

¡Y ya hemos conseguido integrar OpenID en nuestro blog!

Por cierto, ¿te has hecho un lío porque no entiendes bien la diferencia entre WordPress.com y WordPress.org? Leyendo WordPress.com vs. WordPress.org se puede entender muy bien la diferencia pero, a grandes rasgos:

  • WordPress.org es un software con licencia GPL escrito en PHP que sirve para crear blogs. Para poner en marcha un blog WordPress.org, tenemos que hospedarlo en algún sitio, ya que sólo es eso, unos cuantos ficheros en PHP que necesitamos servir desde algún servidor web.
  • WordPress.com es un portal, similar a Blogger, que permite crear y hospedar blogs sin necesidad de buscar un hosting ni de saber nada de servidores web, de PHP o de MySQL. WordPress.com usa por debajo el código de WordPress.org, pero no nos permite modificarlo según nuestras necesidades, ni nos deja instalarle los plugins y temas que nosotros queramos.

Actualización 24/10/08:

Desde la versión 3.0 del plugin WP-OpenID, el propio plugin puede ofrecer funciones de OpenID Provider. Por tanto, si ya tenemos este plugin instalado, ya no necesitamos delegar esta autentificación a WordPress.com.

:wq

Entradas relacionadas

43 Comentarios a “OpenID en WordPress.org y cómo usar WordPress.com como proveedor de identidad”

  • isilanes dice:

    Como siempre uno cree que entiende las cosas hasta que lee tus explicaciones y las entiende realmente.

  • chuchurex dice:

    Probando Open ID

  • Excelente aporte a la comunidad.

    Es un placer leer tus comentarios.

    Saludos

  • Excelente aporte

    Es fascinante ver como los temas que no se alcanzaban a comprender bien, solo consultandolos en tu blog, podemos aterrizarlos bien

    Gracias y saludos.

  • @isilanes ¡Gracias! ¡Me alegro de que te haya gustado!

    @chuchurex Me parece que la prueba no ha funcionado…

    @mikereo Gracias. La URL sólo tienes que ponerla en su apartado correspondiente. En la casilla de nombre puedes poner el nombre. Por cierto, es curioso que hayas podido dejar el mensaje sin e-mail…

  • dertty dice:

    muy bien explicado

  • Sagman dice:

    Muy bien explicado Super :)
    A ver si en wordpress.com meten OpenID :)

  • Ringmaster dice:

    Gracias SuperCoco!! Pero no entiendo una cosa. Yo se supone que no necesito registrarme porque tengo un Blog en Blogger, y al dejar mi primer comentario después de que integraste OpenID me preguntó lo de “Dile a Tal que eres propietario de la página Tal” y le dí para siempre, pero no tuve que meter ninguna contraseña.

    ¿Entonces puede alguien pasarse por mí sólo con indicar mi Blog como página Web? … Porque el control sólo se hace en base a la página web, ¿no?

  • Oink! dice:

    probando, probando…

  • @dertty, @Sagman ¡Gracias!

    @Ringmaster Si relees la entrada detenidamente (igual no he logrado explicarlo bien), verás que tú tienes que haber iniciado la sesión (log on) de antemano en la página de tu proveedor de OpenID para que esto funcione.

    En tu caso, por ejemplo, cuando has dejado el comentario, ya estarías logeado en Blogger y tendrías una cookie de Blogger que mantiene ese estado de “haber iniciado la sesión”. Cuando mi página te ha redirigido a Blogger para que éste te preguntara si querías enviar tu OpenID, Blogger te ha permitido hacerlo porque ha encontrado esa cookie. También te podría salir una página para que tu metieras tu usuario y tu contraseña de Blogger, pero no funciona así porque sería susceptible de phishing porque yo podría redirigirte a un portal imitación de Blogger que yo tuviera en vez de al auténtico para poder averiguar tu usuario y contraseña.

    Si quieres, cierra la sesión de Blogger y vuelve a dejar un comentario aquí y cuéntanos la diferencia.

    Por cierto, no hay que tener miedo de que otra página nos lea la cookie que mantiene el estado de la sesión de Blogger o cualquier otro servicio online, ya que las cookies sólo las puede leer el servidor que las creó.

    @Oink! Me parece que no funciona ;-)

  • Ringmaster dice:

    Ah!! Pues sí, no me he dado cuenta que ha debido leer la cookie de Blogger (había iniciado sesión) con la Barra de Google (muy útil eso de mismos marcadores en todos los ordenadores ;-) ).

    Voy a probar “deslogueado”. ¡Gracias!

    Otra cosa: lo de suscribirse no funciona, no he recibido ningún aviso.

  • Ringmaster dice:

    Pues la diferencia es que me lleva a otra pantalla donde iniciar mi sesión de Blogger. Pero hay que decir que sí que me lleva a una página para loguearme en Blogger; una página con malas intenciones podría llevarme a una página “falsa” cuando dejo un comentario: Hay que comprobar que la dirección es de http://www.blogger.com y no otra (en Firefox 3 las páginas “verdaderas” aparecerán con el nombre del dominio y fondo verde antes de la URL lo que está muy bien para confirmar).

    ¡Estupendo!

  • @Ringmaster Gracias por hacer la prueba. Creo que no es buena idea que Blogger te permita registrarte en ese momento. Como bien dices, el usuario debería de revisar el dominio para asegurarse de que introduce la contraseña en la página correcta (algo que habría que hacer siempre, por otra parte). Parece más sensata la política de WordPress.com que, como he comentado en la entrada, te devuelve el siguiente mensaje si aún no has iniciado la sesión:

    You should use a bookmark or type in the address to do this. This page does not contain any links, to protect you from phishing.

    Yo pensaba que el estándar de OpenID había considerado esto, pero veo que en realidad lo único que te aconseja es que se use HTTPS y que no se usen IFrames ni popups:

    5. Security Considerations

    * While the OpenID Authentication protocol often refers to using HTTP, HTTPS can be used for additional security. It is RECOMMENDED it is used during the associate mode (associate) and helps to protect against man in the middle, DNS, and some phishing attacks.

    *Consumers SHOULD NOT use IFrames or popup’s when requesting an End User login via OpenID.

    De modo que lo que hace Blogger es, por un lado menos seguro, pero por otro, menos confuso para el usuario. Lo que hay que hacer en estos casos es, desde luego, asegurarnos de que estamos usando HTTPS y de que el dominio que aparece en la barra de direcciones es el correcto.

    Gracias por tu comentario que nos permite entender mejor cómo gestionan los diferentes portales el OpenID.

    PD: Sí, me acabo de dar cuenta gracias a tu comentario de que el plugin “subscribe to comments” no funciona en WordPress 2.5. A ver lo que puedo hacer al respecto. Gracias por avisar.

  • florin dice:

    si hay alguien quien me pueda enseñar a usar el php editor de web porfavor.se lo agradeceria

  • Bosco Curtu dice:

    He seguido tus instrucciones, a ver si funciona… (Funciona!)

  • DohkoSM dice:

    probando probando

  • Gustavo dice:

    Siguiendo tus instrucciones ¿funcionará? Seguro que sí.

    Salu2

  • lopongoaca dice:

    Excelente explicacion hacerca de como intergrar el OpenID, feclicitaciones

  • Alejandro dice:

    Seguí los pasos y acá estoy probando. Gracias!!!

  • gizmo dice:

    jaja eso lo he estado buscando desde hace mucho

    seria genial si se pudiera hacer lo mismo en un blog de wordpress.com :(

  • Hola Super Coco

    He estado leyendo tus post desde hace unos días, y he aprendido muchas cosas nuevas. Asi que aquí he querido dejarte mis saludos y agradecimientos por compartir lo que sabes con la comunidad y no solo eso, sino que además lo explicas super didácticamente.

    Asi que Gracias y Saludos.

    Ahora a utilizar mi openId en los sitios que lo tengan habilitado :D

    Bytes

  • @Othawan Gracias, me alegro de que te haya resultado útil.

  • Iñaki dice:

    Me encanta tu blog, es realmente cojonudo!

    Felicidades

  • Nxr dice:

    Muy buen post, estoy probándolo ahora mismo.

  • Igo dice:

    gracias por la info!! es muy buena :D

    saludos

  • Tobal dice:

    probando openid, pero no me lo reconoce para identificarme en mi propio blog

  • microbia dice:

    Probando OpenID… y funciona!! Muchas gracias!

  • Probando openID, disculpe las molestias.

  • Laura dice:

    Pues sigo sin entender una cosa, tengo un blog en mi servidor con Wordrpess e instalé dicho plugin. Pero el formulario sigue requiriendo nombre y correo si se supone que con solo poner el openID es suficiente.

    Por lo menos en mi blog no me deja nada más poner el openID, hay que poner nombre e email así que no le veo caso usar openID si prácticamente te estás identificando dos veces. Se supone que debe de ser solo necesario introducir el openID (y estar logueado allá desde luego) y no todos los campos. ¿Aquí es lo mismo? Saludos..

    • Sí, el formulario sigue pidiendo todo, el usuario o el OpenID, para que puedas entrar como siempre o con OpenID. Sólo necesitas poner una de las dos cosas para poder entrar.

  • Chemical dice:

    Probando probando, gracias por la ayuda

  • Perico dice:

    Ahora creo que deberia de funcionar

  • dios dice:

    probando OpenId

  • Iván E. S. dice:

    Quiero probar a ver si entendí, así que con WordPress yo pongo la dirección de mi blog en wordpress.com y la puedo cambiar por la direccción del blog que tengo en el hosting… Sólo uso la de WordPress.com como identidad universal en internet… Vamos a ver, si esto es así tendria que aparecer mi comentario con la dirección de mi blog http://www.ratadelsistema.com.ar... joya, muy bueno, muchas gracias! :D

    • Iván E. S. dice:

      Mi nombre sigue apuntando a ratadelsistema.wordpress.com… no queda otra que instalar el plugin WP-OpenID en la URL de mi blog hospedado en hosting, o hay algún lugar donde pueda cambiar la dirección y seguir usando el de wordpress.com como ID solamente?? Auxilio!!! :D

      • Iván E. S. dice:

        Perdon! Soy yo otra vez, creo que ya lo entendí y el secreto está en agregar las lineas de código de más arriba al archivo index.php y despúes poner la dirección de tu página normalmente que el programa hace sólo lo que tiene que hacer, si es así entonces debería aparecer el loguito de OpenID con la dir de mi página… mhh… Acabo de hacer una guía OpenID para tontos :D saludos, gracias

      • Iván E. S. dice:

        Jesús! Es la primera vez que comento tanto en un blog! Y me pasa por leer rápido y no prestar atención, no había visto la parte que dice que el code va en el Header del Theme (donde va practicamente todo el código extra), así que ya lo corregí. Con suerte va a funcionar bien, en ese caso… gracias!!!! Voy a intentar añadir el plugin tambíén. En caso contrario, perdón por tantos comentarios anidados… pero no los puedo borrar!

  • Romelio dice:

    Excelente articulo ;)

  • Carlos Mayo dice:

    Muchas gracias por la información

Trackbacks y pingbacks:

Tema LHYLE09, creado por Vicente Navarro