OpenID

De Viquipèdia
Dreceres ràpides: navegació, cerca

OpenID és un sistema d'identificació digital descentralitzat, amb el qual un usuari pot identificar-se a una pàgina web a través d'un URL (o un XRI a la versió actual) i pot ser verificat per qualsevol servidor que suporti el protocol. La idea que hi ha al darrere és, doncs, que no calguin diferents comptes per entrar a diferents llocs web, sinó que amb una única dada identificadora es pugui entrar en més d'un espai: un compte d'usuari OpenID facilita l'accés als llocs que suporten aquest protocol i no cal tenir un identificador per a cada lloc web que es vulgui visitar.

Als llocs que suportin OpenID, els usuaris no s'han de crear un nou compte per tenir-hi accés: només els cal disposar d'un identificador creat a un servidor que verifiqui OpenID, anomenat proveïdor d'identitat o IdP.

El proveïdor d'identitat pot confirmar la identificació OpenID de l'usuari en un lloc que suporti aquest sistema.

A diferència d'arquitectures d'autenticació única, OpenID no especifica el mecanisme d'autenticació. Per tant, la seguretat d'una connexió OpenID depèn de la confiança que tingui el client OpenID en el proveïdor d'identitat. Si no hi ha confiança en el proveïdor, l'autenticació no serà adequada per a serveis bancaris o transaccions de comerç electrònic. Tanmateix, el proveïdor d'identitat pot emprar una autenticació forta que pugui ser emprada per a aquestes finalitats.

OpenID va prenent força gràcies a l'anunci de l'adopció d'aquest sistema per part d'alguns llocs grans, com Technorati. El programari mediawiki té una extensió per permetre l'ús mitjançant Open ID, però encara no s'està utilitzant als servidors de la Wikipedia. AOL ja actua com a proveïdor d'OpenID. A més, Firefox s'ha plantejat com una de les prioritats del projecte 3 la integració d'OpenID i Microsoft està treballant per implementar Open ID 2.0 al Windows Vista.

Desenvolupament[modifica | modifica el codi]

El protocol OpenID va ser desenvolupat originàriament per Brad Fitzpatrick, fundador de LiveJournal, tot i que David Recordon de VeriSign, Josh Hoyt de JanRain i Dick Hardt de Sxip en són ara coautors. Les futures especificacions d'OpenID estaran desenvolupades en una meritocràcia i basades en la llista de distribució. Per donar suport a la implantació d'OpenID, un grup d'empreses va anunciar a l'agost de 2006 un programa de contribucions de desenvolupament, que oferia 5000$ a deu primers projectes de programari lliure que implementés total compatibilitat amb OpenID. A partir de la versió 1.1, Open ID fa servir el protocol de cerca de serveis Yadis. Avui dia s'està desenvolupant la versió 2.0 de l'autenticació Open D, tot i que OpenID està esdevenint un marc que suportarà altres serveis d'identificació a més de l'autenticació.

Terminologia[modifica | modifica el codi]

Un glossari bàsic dels termes emprats amb OpenID:


  • Usuari final: persona que vol accedir amb la seva identitat digital a un lloc.
  • Identificador: l'URL o XRI triats per l'usuari final com el seu identificador OpenID.
  • Proveïdor d'identitat: un proveïdor de serveis que ofereix registre d'URL o XRI OpenID i facilita autenticació OpenID.
  • Part confident: lloc que vol identificar la identitat de l'usuari final.
  • Servidor o agent servidor: servidor que verifica la identitat de l'usuari final. Tant pot tractar-se del mateix servidor de l'usuari final (com ara el del seu bloc) com d'un servidor gestionat per un proveïdor d'identitat.
  • Agent de l'usuari: programa (com ara el navegador) que l'usuari final utilitza per accedir a un proveïdor d'identitat o a una part confident.


Com funciona OpenID[modifica | modifica el codi]

Un lloc web, anomenem-lo exemple.cat, que vol oferir accés als seus visitants a través d'OpenID, col·loca un formulari d'identificació a alguna de les seves pàgines. Al contrari que els típics formularis d'identificació que pregunten a l'usuari pel seu nom i contrasenya, en aquest cas només existeix un camp per a l'identificador OpenID. El lloc web pot optar per mostrar un petit logo OpenID al costat del camp. Aquest formulari estarà connectat a una implementació de la biblioteca client OpenID. Si, per exemple, la Griselda vol accedir a exemple.cat fent servir l'identificador OpenID, griselda.proveïdor-openid.org que ella ha registrat prèviament al proveïdor d'identitat proveïdor-openid.org, simplement va a exemple.cat i tecleja griselda.proveïdor-openid.org a la caixa d'identificació d'OpenID. A partir de la versió 2.0 de l'autenticació OpenID (i en algunes de les implementacions d'OpenID 1.1), la Griselda també pot identificar-se escrivint un i-nom com ara =exemple.griselda o =exemple.comunitat*griselda.

Si l'identificador és un URL, la primera cosa que ha de realitzar la part ( exemple.cat) és transformar-la en una forma canònica del tipus {{format ref}} http://griselda.proveidor-openid.org. Amb OpenID 1.0, la part confident sol·licita aleshores la pàgina web situada a l'esmentat URL i, mitjançant una etiqueta HTML d'enllaç, descobreix que el servidor del proveïdor és, suposem, {{format ref}} http://proveidor-openid.org/openid.auth.php. També descobreix si cal que utilitzi o no una identitat delegada (vegeu més avall). A partir d'OpenID 1.1, el client arribar a conèixer aquestes dades sol·licitant el document XRDS (anomenat també document Yadis) amb el tipus de contingut application/xrds+xml, que pot estar disponible a l'URL esmentat i que sempre estarà disponible a través d'una XRI.

Hi ha dues maneres a través de les quals la part confident pot comunicar-se amb el proveïdor d'identitat:

  • checkid_immediate, orientat a la identificació automàtica i on qualsevol comunicació entre els dos servidors es realitza com una tasca de fons, sense que l'usuari en sigui conscient;
  • checkid_setup, en què l'usuari es comunica directament amb el servidor proveïdor fent servir el mateix navegador web que fa servir per a accedir al lloc de la part confident.

La segona opció és més popular al Web. Ara bé, també pot passar que un checkid_immediate acabi esdevenint un checkid_setup si l'operació no pot automatitzar-se.

En primer lloc, la part confident i el proveïdor (opcionalment) estableixen un secret compartit que la part confient s'encarrega d'emmagatzemar. Si es fa servir checkid_setup, la part confident redirigeix el navegador web de l'usuari cap al proveïdor. A l'exemple, el navegador de la Griselda seria redireccionat a proveidor-openid.org de manera que la Griselda es pogués autenticar contra el proveïdor.

El mètode d'autenticació pot variar, però normalment un proveïdor d'OpenID demana una contrasenya (i aleshores possiblement emmagatzema la sessió de l'usuari fent servir galetes, tal com fan molts llocs amb autenticació basa en contrasenya). En el cas que la Griselda no tingués una sessió activa al proveidor-openid.org, aquest li sol·licitaria la seva contrasenya. Un cop tingués la sessió oberta, el servidor li preguntaria sobre la confiança que li ofereix [enllaç sense format] http://exemple.cat/openid-retorn.php (la pàgina designada per exemple.cat com a destí al qual l'usuari hauria de tornar després d'haver completat l'autenticació per rebre-hi els detalls de la seva identitat). Si la Griselda respon positivament, l'autenticació OpenID es considera reeixida i el navegador és redireccionat a la pàgina de retorn indicada amb les credencials atorgades. Si la Griselda decideix no refiar-se del lloc de la part confident, el navegador també serà redireccionat, però es notificarà el rebuig a la part confident, de manera que exemple.cat com a contrapartida es negarà a autenticar la Griselda.

No obstant això, el procés de connexió encara no ha acabat perquè en aquesta etapa, exemple.cat no pot decidir si les credencials rebudes realment van ser rebudes des de proveidor-openid.org. Si ells havien establert prèviament un secret compartit, la part confident pot validar el secret compartit rebut amb les credencials que tingués desades prèviament. Cada part confident és anomenada en condicions perquè des del secret compartit entre sessions mentre que una part confident sense condicions o muda haurà de fer una petició més a fons (check_authentication) per assegurar-se que les dades van venir de veritat de proveidor-openid.org.

Després que l'identificador de la Griselda hagi estat verificat, se la considerarà registrada a exemple.cat com a griselda.proveidor-openid.org. El lloc pot aleshores desar la sessió o, si aquest és el seu primer registre, demanar a la Griselda que introdueixi informació específica per a exemple.cat per acabar el registre.

Fundació OpenID[modifica | modifica el codi]

La Fundació OpenID (als EUA) i la seva filial OpenID Europa es van crear el 2007. Són organitzacions sense ànim de lucre el paper de les quals és l'organització i el desenvolupament del marc OpenID per a la comunitat i l'administració de la propietat intel·lectual que se'n deriva.

Identificadors OpenID[modifica | modifica el codi]

A partir de la versió 2.0 de l'autenticació OpenID (i en algunes implementacions d'OpenID 1.1), hi ha dos tipus d'identificadors: URLs i XRIs.

URLs[modifica | modifica el codi]

Hi ha dues formes d'obtenir un URL OpenID vàlid que pugui ser emprat per registrar-se en tots els llocs que suportin OpenID.

  1. Fer servir un URL existent que l'usuari final controli (com el seu bloc o pàgina personal) i, si sap editar HTML, podrà inserir al codi les etiquetes OpenID escaients tot seguint les instruccions de les especificacions d'OpenID (http://openid.net/specs.bml). Emprant un subdomini, es pot aconseguir que l'OpenID de cadscú sigui més fàcil d'escriure, però no és imprescindible.
  2. Registrar l'identificador d'OpenID de l'usuari final en un proveïdor d'identitats. Aquests ofereixen la possibilitat de registrar URLs (habitualment, tercers nivells de domini) configurats de forma automàtica per ser emprats amb serveis d'autenticació OpenID.

XRIs[modifica | modifica el codi]

Els XRIs (acrònim d'eXtensible Resource Identifier) són un nou sistema d'identificació a Internet, dissenyat específicament per a identitats digitals de domini creuat. Els XRIs són de dos tipus: i-noms i i-números que són, normalment, registrats simultàniament com a equivalents. Els i-noms són reassignables (semblants a noms de domini), mentre que els i-números mai no són reassignats. Quan un i-nom és emprat com a identificador OpenID, aquest és resolt immediatament per l'i-número equivalent (l'element CanonicalID d'un document XRDS). Aquest i-número és l'identificador OpenID emmagatzemat per la part confident. Així, l'usuari i la part confident estan protegits contra els canvis d'identitat que podria haver-hi amb una URL basada en un nom DNS reassignable.

Referències[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]