Notera. transl.: Denna fantastiska artikel av Okta förklarar hur OAuth och OIDC (OpenID Connect) fungerar pÄ ett enkelt och tydligt sÀtt. Denna kunskap kommer att vara anvÀndbar för utvecklare, systemadministratörer och till och med "vanliga anvÀndare" av populÀra webbapplikationer, som med största sannolikhet ocksÄ utbyter konfidentiell data med andra tjÀnster.
Under Internets stenÄlder var det enkelt att dela information mellan tjÀnster. Du gav helt enkelt ditt anvÀndarnamn och lösenord frÄn en tjÀnst till en annan, sÄ att han gick in pÄ ditt konto och fick all information han behövde.

"Ge mig ditt bankkonto." âVi lovar att allt kommer att bli bra med lösenordet och pengarna. Det Ă€r Ă€rligt, Ă€rligt!" *hihi*
SkrÀck! Ingen ska nÄgonsin krÀva att en anvÀndare delar ett anvÀndarnamn och lösenord, referenser, med en annan tjÀnst. Det finns ingen garanti för att organisationen bakom denna tjÀnst kommer att hÄlla uppgifterna sÀkra och inte kommer att samla in mer personlig information Àn nödvÀndigt. Det kan lÄta galet, men vissa appar anvÀnder fortfarande denna praxis!
Idag finns det en enda standard som tillÄter en tjÀnst att sÀkert anvÀnda data frÄn en annan. TyvÀrr anvÀnder sÄdana standarder mycket jargong och termer, vilket komplicerar deras förstÄelse. Syftet med det hÀr materialet Àr att förklara hur de fungerar med hjÀlp av enkla illustrationer (Tycker du att mina teckningar pÄminner om barns daubing? NÄvÀl!).

Förresten, den hÀr guiden Àr ocksÄ tillgÀnglig i videoformat:

Mina damer och herrar, vÀlkomna: OAuth 2.0
Àr en sÀkerhetsstandard som tillÄter en applikation att fÄ tillstÄnd att komma Ät information i en annan applikation. Stegföljd för att utfÀrda tillstÄnd [lov] (eller samtycke [samtycke]) ringer ofta tillstÄnd [tillstÄnd] eller delegerat tillstÄnd [delegerad auktorisation]. Med denna standard tillÄter du en applikation att lÀsa data eller anvÀnda funktionerna i en annan applikation för din rÀkning utan att ge den ditt lösenord. Klass!
Som ett exempel, lÄt oss sÀga att du upptÀcker en webbplats som heter "Dagens oturliga ordlek" [Dagens fruktansvÀrda ordlek] och bestÀmde sig för att registrera sig pÄ det för att fÄ dagliga ordlekar i form av textmeddelanden pÄ telefonen. Du gillade verkligen sidan och du bestÀmde dig för att dela den med alla dina vÀnner. Alla gillar ju lÀskiga ordlekar, eller hur?

"Dagens olyckliga ordlek: Hört om killen som tappade den vĂ€nstra halvan av sin kropp? Nu har han alltid rĂ€tt!â (ungefĂ€rlig översĂ€ttning, eftersom originalet har sin egen ordlek - ungefĂ€rlig översĂ€ttning)
Det Àr tydligt att det inte Àr ett alternativ att skriva till varje person frÄn kontaktlistan. Och om du till och med Àr lite som jag, dÄ kommer du att gÄ hur lÄngt som helst för att undvika onödigt arbete. Lyckligtvis kan Terrible Pun of the Day bjuda in alla dina vÀnner pÄ egen hand! För att göra detta behöver du bara öppna Ätkomsten till dina kontakters e-post - webbplatsen sjÀlv skickar inbjudningar till dem (OAuth-regler)!

"Alla Àlskar ordlekar! - Redan inloggad? "Vill du tillÄta webbplatsen Terrible Pun of the Day att komma Ät din kontaktlista? - Tack! FrÄn och med nu kommer vi att skicka pÄminnelser varje dag till alla du kÀnner, fram till tidens slut! Du Àr den bÀsta vÀnnen!"
- VÀlj din e-posttjÀnst.
- Om det behövs, gÄ till e-postsidan och logga in pÄ ditt konto.
- Ge Dagens Terrible Pun tillstÄnd att komma Ät dina kontakter.
- à tergÄ till webbplatsen Terrible Pun of the Day.
Om du Àndrar dig, erbjuder applikationer som anvÀnder OAuth ocksÄ ett sÀtt att Äterkalla Ätkomst. NÀr du bestÀmmer dig för att du inte lÀngre vill dela kontakter med Dagens Terrible Pun, kan du gÄ till e-postsidan och ta bort ordlekssidan frÄn listan över auktoriserade applikationer.
OAuth-flöde
Vi har precis gÄtt igenom det som brukar kallas flöde [flöde] OAuth. I vÄrt exempel bestÄr detta flöde av synliga steg, samt flera osynliga steg, dÀr tvÄ tjÀnster kommer överens om ett sÀkert utbyte av information. Det föregÄende exemplet med Dagens fruktansvÀrda ordlek anvÀnder det vanligaste OAuth 2.0-flödet, kÀnt som "auktoriseringskod"-flödet. ["auktoriseringskod" flöde].
Innan vi gÄr in i detaljerna om hur OAuth fungerar, lÄt oss prata om innebörden av nÄgra termer:
- ResursÀgare:

Det Àr du! Du Àger dina referenser, dina data och kontrollerar alla aktiviteter som kan utföras pÄ dina konton. - Klient:

En applikation (till exempel tjÀnsten Terrible Pun of the Day) som vill komma Ät eller utföra vissa ÄtgÀrder pÄ uppdrag av ResursÀgare'а. - Auktoriseringsserver:

Appen som vet ResursÀgare'a och i vilken u ResursÀgare'a har redan ett konto. - Resursserver:

Application Programming Interface (API) eller tjÀnst som Klient vill anvÀnda för rÀkning ResursÀgare'а. - Omdirigera URI:

LÀnken som Auktoriseringsserver kommer att omdirigera ResursÀgare'och efter att ha gett tillstÄnd Klient'pÄ. Det kallas ibland för "Callback URL". - Svarstyp:

Den typ av information som förvÀntas tas emot Klient. Den vanligaste Svarstyp'ohm Àr koden, det vill sÀga Klient förvÀntar sig att ta emot Behörighetskod. - Omfattning:

Detta Àr en detaljerad beskrivning av de behörigheter som krÀvs Klient'y, som att komma Ät data eller utföra vissa ÄtgÀrder. - Samtycke:

Auktoriseringsserver basker ScopesbegÀrda Klient'om, och frÄgar ResursÀgare'a, Àr han redo att ge Klient'har lÀmpliga behörigheter. - kund-ID:

Detta ID anvÀnds för att identifiera Klient'a pÄ Auktoriseringsserver'e. - Klienthemlighet:

Detta Àr lösenordet som bara Àr kÀnt Klient'du och Auktoriseringsserver'pÄ. Det lÄter dem dela information privat. - Behörighetskod:

TillfÀllig kod med kort giltighetstid, som Klient erbjuder Auktoriseringsserver'y i utbyte mot tillgÄng Token. - tillgÄng Token:

Nyckeln som klienten kommer att anvÀnda för att kommunicera med Resursserver'om. Ett slags mÀrke eller nyckelkort som ger Klient'ha tillstÄnd att begÀra data eller utföra ÄtgÀrder pÄ Resursserver'e pÄ dina vÀgnar.
Notera: Ibland Àr auktoriseringsserver och resursserver samma server. Men i vissa fall kan det vara olika servrar, Àven om de inte tillhör samma organisation. Till exempel kan auktoriseringsservern vara en tredjepartstjÀnst som betros av resursservern.
Nu nÀr vi har tÀckt kÀrnkoncepten för OAuth 2.0, lÄt oss gÄ tillbaka till vÄrt exempel och titta nÀrmare pÄ vad som hÀnder i OAuth-flödet.

- Du, ResursÀgare, du vill tillhandahÄlla tjÀnsten Terrible Pun of the Day (Klienty) tillgÄng till dina kontakter sÄ att de kan skicka inbjudningar till alla dina vÀnner.
- Klient omdirigerar webblÀsaren till sidan Auktoriseringsserver'a och inkludera i frÄga kund-ID, Omdirigera URI, Svarstyp och en eller flera Scopes (behörigheter) den behöver.
- Auktoriseringsserver verifierar dig och ber om ett anvÀndarnamn och lösenord vid behov.
- Auktoriseringsserver visar ett formulÀr Samtycke (bekrÀftelser) med en lista över alla ScopesbegÀrda Klient'om. Du samtycker eller vÀgrar.
- Auktoriseringsserver omdirigerar dig till webbplatsen Klient'a, anvÀnder Omdirigera URI med Behörighetskod (Behörighetskod).
- Klient kommunicerar direkt med Auktoriseringsserver'ohm (förbigÄ webblÀsaren ResursÀgare'a) och skickar sÀkert kund-ID, Klienthemlighet О Behörighetskod.
- Auktoriseringsserver kontrollerar uppgifterna och svarar med tillgÄng Token'om (Ätkomsttoken).
- Nu Klient kan anvÀnda tillgÄng Token att skicka en förfrÄgan till Resursserver för att fÄ en lista med kontakter.
Klient-ID och hemlighet
LÄngt innan du tillÀt Dagens fruktansvÀrda ordlek att komma Ät dina kontakter, hade klient- och auktoriseringsservern etablerat en arbetsrelation. Auktoriseringsservern genererade klient-ID och klienthemlighet (kallas ibland app-id О Appens hemlighet) och skickade dem till klienten för ytterligare interaktion inom OAuth.

"- HallĂ„! Jag skulle vilja jobba med dig! - Javisst, inget problem! HĂ€r Ă€r ditt klient-ID och hemlighet!â
Namnet antyder att klienthemligheten mÄste hÄllas hemlig sÄ att endast klienten och auktoriseringsservern kÀnner till den. Det Àr trots allt med hans hjÀlp som auktoriseringsservern bekrÀftar sanningen om kunden.
Men det Àr inte allt... VÀlkommen OpenID Connect!
OAuth 2.0 Ă€r endast utformad för tillstĂ„nd - att ge tillgĂ„ng till data och funktioner frĂ„n en applikation till en annan. (OIDC) Ă€r ett tunt lager ovanpĂ„ OAuth 2.0 som lĂ€gger till inloggnings- och profildetaljer för anvĂ€ndaren som Ă€r inloggad pĂ„ kontot. Organisationen av en inloggningssession kallas ofta autentisering [autentisering], och information om anvĂ€ndaren som Ă€r inloggad i systemet (dvs ResursĂ€gare'e), â personlig information [identitet]. Om auktoriseringsservern stöder OIDC kallas den ibland för leverantör av personuppgifter [identitetsleverantör]eftersom det ger Klient'har information om ResursĂ€gare'e.
OpenID Connect lÄter dig implementera scenarier dÀr en enda inloggning kan anvÀndas i flera applikationer - detta tillvÀgagÄngssÀtt Àr ocksÄ kÀnt som enda inloggning (SSO). Till exempel kan en applikation stödja SSO-integration med sociala nÀtverk som Facebook eller Twitter, vilket gör det möjligt för anvÀndare att anvÀnda ett konto som de redan har och föredrar att anvÀnda.

Flödet (flödet) OpenID Connect ser likadant ut som i fallet med OAuth. Den enda skillnaden Àr att i den primÀra begÀran Àr det specifika omfÄng som anvÀnds openid, - A Klient sÄ smÄningom blir som tillgÄng Token, och ID-token.

Precis som i OAuth-flödet, tillgÄng Token i OpenID Connect Àr detta ett vÀrde som inte Àr tydligt Klient'pÄ. Ur synvinkel Klient'а tillgÄng Token representerar en strÀng av tecken som skickas tillsammans med varje begÀran till Resursserver'y, som avgör om token Àr giltig. ID-token representerar en helt annan sak.
ID-token Àr en JWT
ID-token Àr en speciellt formaterad teckenstrÀng som kallas JSON Web Token eller JWT (ibland uttalas JWT-tokens som "jots"). För utomstÄende observatörer kan JWT tyckas vara obegripligt snack, men Klient kan extrahera olika information frÄn JWT, sÄsom ID, anvÀndarnamn, inloggningstid, utgÄngsdatum ID-token'a, förekomsten av försök att störa JWT. Data inuti ID-token'a kallas applikationer [pÄstÄenden].

NÀr det gÀller OIDC finns det ocksÄ ett standardsÀtt Klient kan begÀra ytterligare information om den enskilde [identitet] frÄn Auktoriseringsserver'en, till exempel, en e-postadress som anvÀnder tillgÄng Token.
LĂ€s mer om OAuth och OIDC
SÄ vi granskade kort hur OAuth och OIDC fungerar. Redo att grÀva djupare? HÀr Àr ytterligare resurser som hjÀlper dig att lÀra dig mer om OAuth 2.0 och OpenID Connect:
Som alltid, kommentera gÀrna. För att hÄlla dig uppdaterad med vÄra senaste nyheter, prenumerera pÄ О Okta för utvecklare!
PS frÄn översÀttaren
LÀs Àven pÄ vÄr blogg:
- «";
- «";
- «";
- «".
KĂ€lla: will.com











