OAuth-protokollen lar apper autentisere mot tjenester

  • Robert Nicholson
  • 0
  • 596
  • 154

På et nylig prosjekt, trengte jeg å konsumere en tjeneste som brukte OAuth for autentisering. Jeg hadde hørt om OAuth, men jeg hadde ikke brukt den relativt nye protokollen. Jeg klarte å oppnå målene mine uten å måtte programmere direkte til OAuth-spesifikasjonen, men bestemte meg for å grave litt dypere for å lære mer om protokollens tarmer.

En oversikt over OAuth

OAuth er designet for å la en bruker av en applikasjon jobbe med data fra en tjeneste, uten å måtte gi applikasjonen legitimasjon for tjenesten. Det store konseptet bak OAuth er at det bruker symboler for å la applikasjoner autentisere mot tjenester. Når en applikasjon ønsker å jobbe med en tjeneste, ber den om et symbol fra tjenesten. Dette tokenet er i utgangspunktet ubrukelig - det vil si at det ikke kan brukes til autentisering. I stedet ber applikasjonen brukeren gå til tjenesten (bak kulissene sender den data i lenken eller omdirigerer om token); når brukeren kommer dit, logger de seg på med de forhåndsdefinerte legitimasjonene. Dette gjør at symbolet som applikasjonen mottok, ble et autorisert token, slik at det kan brukes til godkjenning. Dette kalles trebente autentisering siden det involverer tre aktører: applikasjonen, brukeren og tjenesten. Det er også to benautentisering mellom en applikasjon og tjenesten, noe som ikke krever brukerintervensjon.

Det er mye mer hvordan protokollen fungerer enn hva jeg har skissert i denne korte introduksjonen; for mer informasjon, sjekk ut OAuth-nettstedet og les de utmerkede artiklene om OAuth på hueniverse.

OAuth-ressurser og kodeeksempler

Til å begynne med skulle jeg skrive all tilgangskoden selv, men jeg fikk vite at RestSharp-biblioteket støtter OAuth. Hvis planen din er å jobbe med en REST-stil, er dette det beste alternativet. RestSharp er et utmerket bibliotek for å jobbe med REST-tjenester og gjør det enkelt å håndtere dem.

For det jeg jobbet med, kunne jeg ikke bruke RestSharp på grunn av klassestrukturene som var involvert. I tillegg hadde tjenesten jeg integrerte med allerede enestående eksempelskode som krevde lite endring for å passe mine behov - det var mer en rutine, "skriv mye LINQ-til-XML for å fylle variabler" slags innsats. Den koden brukte DevDefined OAuth-biblioteket med noen modifikasjoner.

Hvis du er interessert i å se eksemplekoden som var så nyttig for meg, i tillegg til en god videoopplæring som viser hvordan trebenets autentisering fungerer i praksis, er Xero-utviklerdokumentasjonen hvor du finner den. Xero har også kodeeksempler og opplæringsprogrammer som viser bruk av OAuth i virkeligheten.

Sammendrag

OAuth kan virke sammensatt når du ser på spesifikasjonene og detaljene, men i virkeligheten er det ikke verst. Det gir tjenestene alle valg i verden til å bestemme hvordan de skal håndtere autentiseringen med sluttbrukeren. Den store fordelen med å bruke OAuth er at den konsumerende applikasjonen ikke trenger å kjenne brukerens legitimasjon, noe som eliminerer hele klasser med sikkerhetsproblemer.

Jeg har en følelse av at OAuth kommer til å bli mer populært i fremtiden, ettersom flere tjenester tilbyr ikke-SOAP-grensesnitt. Et sted, for eksempel som bruker OAuth, er Windows Azure Marketplace DataMarket, og uten tvil kommer andre snart.

J.Ja




Ingen har kommentert denne artikkelen ennå.

Tips, nyttig informasjon og siste nytt fra teknologiens verden!
Nyttig informasjon og de siste teknologinyhetene fra hele verden. Videoomtaler av telefoner, nettbrett og datamaskiner.