OAuth 2.0-autorisasjon
OAuth 2.0 er et autorisasjonsrammeverk som har blitt den de facto-standarden for å autorisere tilgang til beskyttede ressurser. Det lar tredjepartsapplikasjoner få tilgang til brukerdata uten å eksponere brukerens legitimasjoner. I stedet for å dele passord, gir tjenester ut token.
Bakgrunn
Tenk deg at du vil bruke en tredjepartsapplikasjon som trenger tilgang til data fra Google-kontoen din. Du ville ikke gi denne tredjepartsappen ditt Google-brukernavn og -passord, vel? Det er her OAuth kommer inn. Det lar deg gi denne applikasjonen tilgang til dine Google-data uten å dele Google-legitimasjonene dine.
Grunnleggende om OAuth 2.0
OAuth 2.0 fokuserer på enkelhet for klientutviklere, samtidig som det gir spesifikke autorisasjonsflyter for webapplikasjoner, skrivebordsapplikasjoner, mobiltelefoner og stueenheter. Her er en forenklet gjennomgang:
Ressurseier: Brukeren som autoriserer en applikasjon til å få tilgang til kontoen sin. Applikasjonens tilgang til brukerens konto er begrenset til "omfanget" av autorisasjonen som er gitt (f.eks. lesing eller skriving av en bestemt type data).
Klient: Applikasjonen som ønsker å få tilgang til brukerens konto. Før den kan gjøre det, må den autoriseres av brukeren, og autorisasjonen må valideres av API-et.
Ressursserver: Serveren som hoster brukerkontoene. Den kan akseptere og svare på beskyttede ressursforespørsler ved hjelp av tilgangstoken.
Autorisasjonsserver: Denne serveren verifiserer brukerens identitet og utsteder deretter tilgangstoken til applikasjonen.
OAuth 2.0-flyter
Det finnes flere "flyter" eller "tilgangstyper" for forskjellige typer applikasjoner og bruksområder:
Authorization Code (for apper som kjører på en webserver): Dette er den vanligste flyten, spesielt for webapper. Den innebærer å omdirigere brukeren til tjenesten, der de logger inn. Etter innlogging omdirigeres de tilbake til applikasjonen med en autorisasjonskode, som applikasjonen kan bytte mot et tilgangstoken.
Implicit (for apper som kjører i en nettleser): Denne flyten er for brukeragentbaserte apper (f.eks. enkeltsideapplikasjoner) der tilgangstokenet returneres umiddelbart uten et ekstra trinn for utveksling av autorisasjonskode.
Resource Owner Password Credentials: Denne flyten lar applikasjonen oppgi brukerens brukernavn og passord direkte. Den anbefales kun for betrodde applikasjoner, ettersom den innebærer deling av brukerens legitimasjoner.
Client Credentials: Brukes når klienten selv er ressurseieren; for eksempel når klienten er en bakgrunnstjeneste.
Token
I stedet for å bruke brukerens legitimasjoner, bruker OAuth 2.0 token. Det finnes to typer:
Tilgangstoken: Lar applikasjonen gjøre API-forespørsler på vegne av brukeren. Det har kort levetid.
Oppdateringstoken: Kan brukes til å innhente et nytt tilgangstoken hvis det opprinnelige tilgangstokenet er utløpt. Det har lengre levetid enn et tilgangstoken.
Sikkerhet
OAuth 2.0 er avhengig av SSL/TLS for sikkerhet. Det sikrer datakonfidensialitet mellom klienten, autorisasjonsserveren og ressursserveren. Selv om angripere klarer å fange opp et tilgangstoken, kan de ikke bruke det utover dets utløpstid (vanligvis en kort varighet) eller utenfor omfanget det ble utstedt for.
Konklusjon
OAuth 2.0 er et kraftig og fleksibelt rammeverk som gjør det mulig for tredjepartsapplikasjoner å få tilgang til brukerdata uten å eksponere brukerlegitimasjoner. Det har blitt et essensielt verktøy i det moderne nettet, og gir brukere og utviklere et sikkert og effektivt middel for å gi og administrere tillatelser på tvers av ulike tjenester og applikasjoner.