Weekend Prosjekt: Sett opp webfinger på serveren din (e)

webfinger er en ny Internet " identitet funn " mekanisme, som du kan gjøre personlig eller faglig informasjon om deg eller din organisasjon synlig gjennom e-postadresser. Flere kjente web-leverandører har implementert webfinger for kundenes profiler, men hvis du klarer din egen e-postserver, er alt som trengs for å bli med i spillet litt tid.

La fingrene gjøre Turgåing The navn webfinger
er en referanse til den gamle finger-protokollen (RFC 1288) fra 1990-tallet. De av oss som er gamle nok til å ha hatt e-postadresser deretter husker hvordan det fungerte - en bekjent fra en adresseliste kanskje vet bare e-postadressen din; kjører finger Denne e-postadressen er beskyttet mot programmer som samler. Du må aktivere Javascript for å kunne se på kommandolinjen vil returnere en blokk med tekst fra example.com postserveren. Innholdet kan være domenedekkende standard informasjon, som din første og siste navn og logge tilstand, men det kan være noe annet, via en tilpasset fil som du redigerte. Telefonnummer, kontortid, ASCII kunstverk, side etter side med obskure Klingon poesi - det var helt opp til e-postkontoen eier og ofte reflektert hans eller hennes smak så mye som det har gitt konkrete data. Spol frem til i dag og finger har vært død lenge, men det samme generelle problemet gjenstår: gitt en e-postadresse, hvordan vi sikkert slå opp noe relatert informasjon? Men i dag er vi ikke bare etter en protokoll som bytter ut Monty Python Anmeldelser sitater for Arrested Development Anmeldelser sitater - vi ønsker å gi tilgang til alvorlige biter som web-applikasjoner og nettbaserte tjenester. Er det en online profil for denne brukeren? Er dette noen allerede i vårt adresseboken? Hvordan sender jeg denne brukeren en invitasjon til konferansesamtalen? Noen av disse behovene er rent folk-orienterte, rett og slett laget for å hjelpe oss å lære om våre kontakter - en avatar bilde, en offentlig GPG nøkkel, etc. Men andre er det å de-sentralisere den stadig voksende verden av sosiale nettverk. For eksempel kan webfinger returnere en lenke til en PortableContacts versjon av adresseboken din; dermed når du logger deg på en ny side, hvis du autoriserer det, området kan hente dine adressebok kontakter og spare deg bryet med å skrive inn like navn og adresser. Den webfinger standarden ble laget av utviklere med bakgrunn så variert som Google, Yahoo, Twitter og OAuth. Som finger før det, er nøkkelen prinsippet om at en brukers identitet er knyttet til en e-postadresse (snarere enn for eksempel en URL) - dette er hvordan folk tenker, og får det galt var en av design beslutninger som hemmet OpenID. Webfinger gjorde sin debut i Google Buzz, og selv om Yahoo og andre store navn e-postleverandører har aktivert den, er det fortsatt i stor grad uutnyttet av enkeltpersoner og private bedrifter og organisasjoner. Så lenge du har tilgang til webserveren fra samme domene som e-postadressen din, men å sette den opp er en lek. Vi skal takle den enkle saken først - konfigurere en webfinger respons for din personlige adresse - før håndtere mer kompliserte alternativene. The Simple Case: Din personlig domene og adresse La oss anta at du eier den example.org domene, som er vert for din personlige e-postadresse, blogg, og periodiske utgivelser av Odd åpen kildekode du klarer i fritiden. Når noen kjenner din e-postadresse, sier Denne e-postadressen er beskyttet mot programmer som samler. Du må aktivere Javascript for å kunne se den, kan de bruke en webfinger klient til å spørre example.org om det. Forespørselen starter med å spørre for URI http://example.org/.well-known/host-meta
. Den .well kjente katalogen er et forsøk på å fremtidssikre slike funn teknikker ved å plassere denne typen standard info i en veldefinert plass, mye som " robots.txt " fil, men i en katalog for å redusere rot. Verts-meta-fil er XML, i eXtensible Resource Descriptor (XRD) format. Det må inneholde en link til XRD navnerom, og mal link som forklarer hvor du skal lete etter den autoritative webfinger entry for hvilken som helst e-postadresse. For eksempel:? ≪ xml version = " 1,0 " encoding = "UTF-8" > < XRD xmlns = " http: //docs.oasis-open.org/ns/xri/xrd-1.0" xmlns: hm = " http: //host-meta.net/xrd/1.0" > < hm: Host xmlns = " http: //host-meta.net/xrd/1.0" > example.org < /hm: Host > < Link rel = " lrdd " mal = " http: //example.org/profiles/{uri} " > < title > Resource Descriptor < /Title > < /Link > < /XRD > &Quot; Link " element er en " Link-baserte Resource Descriptor Discovery " (LRDD) referanse som forteller webfinger klienten å se om kontoinformasjon i http://example.org/profiles/katalogen. Foreløpig er det en debatt i webfinger samfunnet nøyaktig syntaksen til URI; noen ønsker å bruke en " acct: " prefiks; andre hevder det er unødvendig. For sikkerhets skyld, du kan like godt lage en fil for deg selv på både http://example.org/profiles/Denne e-postadressen er beskyttet mot programmer som samler. Du må aktivere Javascript for å kunne se og http://example.org/profiles/acct: Denne e-postadressen er beskyttet mot programmer som samler. Du må aktivere Javascript for å kunne se den. Innholdet i denne filen må også være i XRD, men du kommer til å bestemme hva de er. Skjelettet syntaks inkluderer følgende: < xml version = " 1,0 " >? < XRD xmlns = " http: //docs.oasis-open.org/ns/xri/xrd-1.0" > < Subject > acct: Denne e-postadressen er beskyttet mot programmer som samler. Du må aktivere Javascript for å kunne se < /Subject > < Alias ​​> Pat realname < /Alias ​​> <! - diverse " Link " elementer gå her! - > < /XRD > Du legger personlig innhold som du ser passer med Link elementer. Den webfinger prosjektet wiki har en liste med eksempler, for eksempel: < Link rel = " describedby " href = " http: //www.google.com/profiles/patexample" type = " text /html " /> for en offentlig profilside, eller: < Link rel = " http: //microformats.org/profile/hcard" href = " http: //www.example.org/info/pat.example" type = " text /html " /> for en hCard fil. Andre eksempler er en iCalendar-feed, OpenID-leverandør, og statusoppdatering stream. I hvert tilfelle, " rel " verdi inne i Link element gir en kobling til riktig syntaks for innholdet i href. Koblinger som er bestemt til konsum, som en profilside, kan returnere enkel HTML-innhold. Informasjonstyper som ville bli forespurt av et program, for eksempel PortableContacts, ATOM eller foaf, kan returneres i andre formater, for eksempel JSON, eller hva annet applikasjonsforespørsler. Dette er også hvor sikkerheten kommer inn i bildet. Du har sannsynligvis ikke vil din personlige informasjon tjent opp til hvem som helst; en real PortableContacts server vil ikke tilbake adresseboken uten først å gå gjennom autorisasjon håndtrykk - Link element bare forteller programmet hvor du ber om det. På den annen side, hvis du ønsker å fylle webfinger oppføring med en liste over dine kredittkortnumre, din private GPG og SSH nøkkelring, og en detaljert, høy oppløsning skanning av fødselsattest - Hei, det er på deg. Jo mer kompleks sak: Din Organisasjons Server For din egen " forfengelighet " domene, disse to XRD filene er alt du trenger for å lage for å svare riktig webfinger forespørsler. Den vanskelige delen er å avgjøre hvilken informasjon du ønsker å offentliggjøre. På den annen side, hvis du er administrator for din bedrift eller mail server organisasjonens, kan du bli lei av å generere XRD filer for hver konto, spesielt ettersom organisasjonen vokser. Den gode nyheten er at opsjoner begynner å dukke opp for å tjene opp webfinger svar. Siden det grunnleggende er bare XML, kan du enkelt lagre brukerinformasjon i MySQL og returnere det for LRDD konfigurert mal med PHP, Perl, eller din favoritt språket. Hvis du allerede bruker en CMS på det aktuelle området, men ting er enda enklere. Matthias Pfefferle har skrevet en Wordpress plugin som tjener opp svarene til webfinger spørringer basert på Wordpress brukerkontoer. Som standard returnerer Linker for avatarer og profilsider, men kan enkelt tilpasses til å tjene andre data også. Jeremy Carbaugh har skrevet en webfinger server for Django, samt en egen XRD parser i Python. Det er også gryende webfinger servere skrevet i Ruby og i Perl. Til slutt, men du velger å montere webfinger svar, som en sever administrator må du ta hensyn til DNS. Forespørsler fra klienter kan eller ikke kan komme til fullt kvalifisert domenenavn som du forventer, spesielt hvis din e-postadresse ordningen benytter underdomener. Som mange av de andre fine detaljene i webfinger, denne delen av systemet er fortsatt under debatt og utvikling; det er ingen spesifikasjon ennå for hvordan du kan oppdage plasseringen av domene mange-meta-fil. Prosjektet er i dag å anbefale TXT-poster for sin fleksibilitet, men du bør sjekke e-postliste for å se hvor aktiv diskusjon fører. ! Ekstra Credit: Klienter

Selvfølgelig, for å teste din egen webfinger implementering, vil du også trenge en webfinger klient - den enkleste alternativet er å bruke DeWitt Clintons web-applikasjon. Der kan du sjekke ikke bare din egen webfinger server, men se hva dagens tredjepartsleverandører som Google og Yahoo tjener opp om deg. Husk at en del av verdien av webfinger er at det setter kontroll over hvor mye informasjon som offentliggjøres tilbake til brukerens hender. Trolig mer viktig for fremtidig suksess for webfinger og relaterte tjenester enn server gjennomføring er et godt utvalg av kunder. Så langt, bortsett fra noen få kommandolinje klienter, den eneste store forbruker ressurser webfinger av dere er sannsynlig å møte er Mozilla Labs 'kontakter i nettleserutvidelse. Dette Firefox add-on automatisk forsøker å hente informasjon for kjente e-postadresser via webfinger, men så langt det ikke gjør mye med resultatene. Så hvis begrepet webfinger slår en akkord som du ønsker å følge opp med mer enn en helg med jobb, hva med å legge til støtte for det til din favoritt PIM eller e-post-appen? Thunderbird, Android eller Maemo telefoner, ulike open source Webmail kunder - feltet er wide open. Det har vært mye snakk i løpet av det siste året om å frigjøre brukere fra de inngjerdede hager av proprietære tjenester som Facebook, men dessverre de fleste av løsningene (som Diaspora) ser ut til å være bøyd på re-bygge en lignende tjeneste struktur med forskjellig lisensiering vilkår. Webfinger, på den annen side, tar en helt annen metode - den setter brukeren i charge av hans eller hennes egne data, uten hensyn til noen bestemt nettverk eller tjeneste. Betyr ikke det høres ut som mer moro?