Weekend Prosjekt: Serve opp din egen OpenID med Open Source Tools

Sist helg så vi på hvordan du aktiverer din nettside til å akseptere OpenID innlogginger. Men akseptere
OpenID-godkjenning er bare halvparten av problemet – Hvis du bryr deg om online personvern og identitet, sjansene er at du vil ønske å styre din egen OpenID. Heldigvis, for å sette opp ditt nettsted tjene som en OpenID-leverandør er ikke så vanskelig – og gjør en flott helg prosjekt.

Gitt hvor mange kommersielle og gratis offentlige tjenester allerede fungere som OpenID leverandører, kanskje noen lurer på hvorfor du ønsker å fungere som din egen identitet leverandøren. For mange enkeltpersoner, er det bare et ønske om å definere sin egen identitet. Et domene som du eier har mer individualitet enn google.com/profiles/somelongalphanumericstring~~V, og hvis nettadressen du bruke som OpenID er en blogg eller personlige område, hvor det ser ut på nettet vil lede folk tilbake til innholdet som du vil at de skal se og forbinder med deg. Andre (særlig i Linux og fri programvare riket) kan begrudgingly har en OpenID fra en proprietær service, men ønsker ikke å offentlig synes tilknyttet det, eller ikke stoler på sin langsiktige stabilitet og /eller ikke-ondskap.

Utover den enkelte, men hvis området er en web-tjeneste, samfunnet gruppe, eller et prosjekt, kan du ønsker å konfigurere serveren til å gi OpenIDs for brukerne bare for å gi dem muligheten til å bruke din merkevarebygging som deres primære identitet. Din bedrift kan være lurt å gi OpenIDs for sine ansatte, slik at de kan kommunisere med kunder og klienter på nettet uten å bruke sine private, hjem IDer.

Til slutt, det er ingen regel som sier at du må eller bør holde seg til bare én OpenID selv. Det kan være fornuftig for en Ubuntu pakke å bruke hans eller hennes Launchpad OpenID på alle åpne kilde nettsteder og fora, men selv gitt OpenID å fremme og knytte til familiens lukrative kattunge-grooming business. Valget er bra.

Delegasjon

Ved langt, er den enkleste måten å ta kontroll over din egen OpenID er med OpenID spesifikasjonen er delegasjonen
støtte. Noen spesiell OpenID er, i seg selv, en URI. Med en kommersiell tjeneste, er du stuck med hva URI leverandøren dikterer til deg, for eksempel http://www.flickr.com/photos/willis for Flickr. På din egen server, men du kan velge hvilken som helst URI som du styrer å fungere som din OpenID.

Med OpenID delegasjon, snarere enn å kjøre en full gjennomføring av OpenID-leverandøren service på URI du velger, kan du inkludere spesielle header koblinger som forbinder den URI med noen andre " oppstrøms " OpenID. Når du logger deg på en OpenID-akseptere nettsted, vil OpenID forbrukeren spore tilbake header linker til delegert OpenID-leverandør, og ber deg om å godkjenne det.

Når du er autentisert, men du er logget inn til OpenID forbruker området under URI som du kontrollerer. Med andre ord er OpenID delegasjonen prosessen alle bak kulissene så langt som det offentlige er bekymret. Du kan begynne å delegere din OpenID til din Google-konto, og slå den til Yahoo på et innfall, og ingen vil vite.

HTML syntaks er enkelt, men det skiller mellom nettsteder som bruker OpenID 1.1 og OpenID 2.0. Den gamle versjonen av protokollen kreves to < link > elementer: en å peke på delegert oppstrøms server, og en som er angitt som oppstrøms URI var din
OpenID. For eksempel:

 < link rel = " openid.server " href = " http: //www.theupstreamopenidserver.com/opserver" /> < link rel = " openid.delegate " href = " http: //accounts.theupstreamopenidserver.com/jimrockfish" /> 

OpenID 2,0 syntaks bruker forskjellige rel attributter, men er i utgangspunktet den samme to < link > s:

 < link rel = " openid2.provider " href = " http: //www.theupstreamopenidserver.com/opserver" /> < link rel = " openid2.local_id " href = " http: //accounts.theupstreamopenidserver.com/jimrockfish" /> 

Hvis du bare ønsker å lage en statisk side å fungere som din OpenID, alt du trenger å gjøre er å plassere de fire < link > elementer i dokumentet < head >, og du vil bli satt for begge generasjoner av OpenID-forbruker nettsteder. Resten av innholdet på siden er helt upåvirket. Bare husk at OpenID er spesifikke for en bestemt URI, sier blog.jimrockford.com; pass på at du ikke genererer < link > elementer på hver side på domenet.

Sannheten er, er den vanskeligste delen om delegering spore opp riktig server /leverandør og delegat /local_id URI for oppstrøms OpenID-leverandør. De fleste vet ikke at de er enkle å finne, siden så få kunder ser ut til å bry seg.

En god Internett-søk økten vil få deg langt, men hvis du er utålmodig, er de mest vanlige tjenestene velkjent. Stack Overflow diskuterer delegere til Googles offentlige profiler (som bare nylig begynt å akseptere delegasjon) og til Yahoos OpenID service. Stas Su »ôcov har en kort oversikt over Launchpad.net er riktig syntaks på sin blogg, og Daniel J. Pritchett blogg dekker delegere til Livejournal. Sørg for at du lese alle kommentarene på disse diskusjonene, som de URI endrer nå og da.

Ferdigpakket Solutions

Hvis nettstedet kjører en CMS (og du kan derfor ikke justere sider ' < head > seksjoner uten å bryte ting), eller om du rett og slett svak på stedet av straight HTML, kan du foretrekker å installere en delegasjon plugin eller forlengelse til å gjøre alle de tunge løftene for deg

WordPress brukere. kan finne flere OpenID-relaterte plugins, selv om, som alltid, friskhet og kompatibilitet er av interesse. Den enkleste up-to-date alternativet er OpenID delegasjon, opprinnelig skrevet av Eran Sandler og oppdatert for OpenID 2.0 av Rich Laager.

Will Daniels har tilsvar tilpasset og forbedret forlatt kode fra en mye eldre Joomla utvidelse til å jobbe med OpenID 2,0 syntaks. Hans versjon heter System - OpenID Delegering

Drupal-brukere har det enkleste av alt;. ingen spesiell plugin er nødvendig. Du kan bare følge OpenID delegasjonen how-to for å få instruksjoner om hvordan du legger en blokk som inneholder riktig < link > elementer. Det er en opprettholdes separat modul kalt OpenID URL tilgjengelig også, hvis det passer deg bedre.

Fordelen med å bruke en plugin eller modul er at det kan gi deg et enklere grensesnitt for å bytte til en annen OpenID delegat hvis du førstevalg går konkurs beskyttelse eller går sur og begynner å saksøke åpen kildekode-prosjekter. På nedturen, hvis forfatteren slutter å oppdatere koden, du kan bli utløst opp av versjon inkompatibilitet og bli sittende fast redigering av HTML for hånd uansett.

Glem Delegasjon og skape seg sin egen identitet

Som praktisk som det er for mange mennesker, er delegasjonen ikke det eneste alternativet. Du kan kjøre din egen OpenID-leverandør, også, noe som betyr at du opprettholder alle brukerkontoer og håndtere hele godkjenningsprosessen. Det kan være overkill for enkeltpersoner, men for prosjekter og bedrifter, å ha et sentralisert system er enklere å vedlikeholde og feilsøke.

Det er ikke så mange plugg og skjøte løsninger som implementerer en hel OpenID identitetsleverandør service, men det er noen. WordPress OpenID plugin nevnt forrige uke som en forbruker kan også fungere som en leverandør, med en OpenID for hver brukerkonto. DjangoID er en multi-user OpenID-leverandør for Django rammeverket, og det er en Python plugin for PyBlosxom blogging plattform.

Utover det plugins, er det flere frittstående OpenID leverandøren systemer skrevet på forskjellige språk. På den lette enden av spekteret, er SimpleID et PHP-basert OpenID-leverandør som tar sikte på å jobbe for små områder. The Ruby søknad lokal-OpenID er tilsvarende utformet for enkeltbrukermiljøene.

Flytte opp i størrelse, Prairie and Community-ID er begge flerbruker OpenID tilbydere skrevet i PHP. Packetizer er OpenID Server er en multi-user frittstående system skrevet i Perl. SamƒÅdhi er skrevet i Python, og designet for å kjøre på TurboGears rammeverket. Det er flere Java-basert leverandør pakker, som alle synes å målrette store distribusjoner. WSO2 Identity Solution og Crowd er to av de bedre kjent.

Til slutt, som var det siste ordet på OpenID forbrukere forrige uke, hvis du bare ikke kan finne en klar gjort identitetsleverandøren for din foretrukne plattformen, du kan implementere din egen ved hjelp av en av de mange OpenID biblioteker. Her igjen, det beste stedet å starte et nytt søk etter kode er på OpenID prosjektets offisielle wiki. I tillegg til biblioteker siden nevnt i forrige helg prosjekt, ta kontakt Kjør din egen identitet server-side, som har noe overlapp, men også flere forskjellige prosjekter. Som alltid, forbeholdet wiki-er; flere lavere nivå OpenID rammer som var populære for noen år siden er fortsatt mye referert, men abandonware.

Identity Heft

Enten du delegere fra en statisk HTML bio side, kjøre en fleksibel plugin på bloggen din, eller administrere en komplett OpenID leverer løsningen, er identiteten din nå din egen. Men for å virkelig dra nytte av at makt, ikke bare bruke basen URI domenets som OpenID og konfrontere de besøkende med en gåtefull tom side informere dem om at Apache ble installert. I stedet, gi publikum noe innhold — bare gjøre det på en OpenID-vennlig måte. Snarere enn å linke til din Facebook-profil, merke opp offentlig informasjon om deg selv i hCard format. Snarere enn en gammeldags blogglista, bruker XFN. Kanskje til og med legge til en grunnleggende profil med webfinger, eller rett og slett fortelle alle hva du gjør med din Linux-boks neste helg. Anmeldelser