Juhendid

Mis on OAuth? „Logi sisse Google’iga“ ja volitatud juurdepääs selgitatuna

OAuth on avatud standard, mis laseb kasutajal anda ühele rakendusele piiratud juurdepääsu oma kontole teises teenuses, andmata üle oma salasõna. Kui klõpsad „Ühenda Google’i kalender“ ja näed ekraani, mis küsib „Kas lubada sellel rakendusel näha sinu sündmusi?“, on see OAuth. Rakendus saab tokeni täpselt selle jaoks, mida kinnitasid, ja selle võib igal ajal tühistada. Sama mehhanism koos täiendava kihiga, mida nimetatakse OpenID Connectiks, toidab nuppe „Logi sisse Google’iga“ ja sarnaseid.

Miks OAuth AI-ga ehitamisel oluline on

OAuth tuleb rakenduse ehitamisel ette kahel tavalisel juhul:

  1. Sotsiaalne sisselogimine. Tahad, et kasutajad saaksid „Logi sisse Google’iga“ (või Apple’i, Microsofti, GitHubi kaudu) selle asemel, et luua veel üks salasõna. Vt kuidas lisada rakendusele sisselogimine.
  2. Ühendumine kasutajate kontodega teistes teenustes. Sinu rakendus peab lugema kasutaja kalendrit, postitama tema sotsiaalkontole, tõmbama faile tema pilvekettalt või sünkroonima raamatupidamisandmeid.

Mõlemal juhul võib su AI ehitaja koodi kirjutada, aga mõned sammud saad teha ainult sina: arendajarakenduse loomine teenusepakkujaga, kliendi ID ja kliendi saladuse saamine, callback URL-ide registreerimine ning mõne õiguse puhul teenusepakkuja läbivaatuse läbimine. OAuthi tundmine teeb need sammud — ja nende tekitatavad vead — palju vähem salapärasteks. Sisselogimise laiema pildi jaoks vt mis on autentimine.

Igapäevane analoogia

Mõtle hotelli võtmekaardile. Sisseregistreerimisel kontrollib vastuvõtt, kes sa oled, ning annab sulle kaardi, mis avab sinu toa ja spordisaali — mitte teisi tube ega personali alasid — ja lakkab töötamast väljaregistreerimisel. Kaart ei sisalda sinu passi. Kui kaotad selle, tühistab vastuvõtt selle ja annab uue.

  • Vastuvõtt on autoriseerimisserver (Google’i sisselogimisleht).
  • Sinu isikutõendi kontroll on sinu sisselogimine Google’isse.
  • Võtmekaart on juurdepääsutoken.
  • „Ainult tuba ja spordisaal“ on õigused (scope’id), mida kinnitasid.
  • Väljaregistreerimine on tokeni aegumine või sinu tehtud juurdepääsu tühistamine.

Rakendus, mida kasutad, ei näe kunagi sinu Google’i salasõna, ainult võtmekaarti.

Kuidas OAuth samm-sammult töötab

Veebirakenduste kõige levinum voog on autoriseerimiskoodi voog. Siin on, mis juhtub, kui kasutaja ühendab oma Google’i kalendri ajastamisrakendusega:

  1. Klõps. Kasutaja klõpsab „Ühenda Google’i kalender“.
  2. Suunamine teenusepakkujale. Rakendus saadab brauseri Google’isse koos oma kliendi ID-ga, soovitud õigustega (kalendrisündmuste lugemine) ja ümbersuunamise URI-ga, kuhu Google peaks kasutaja tagasi saatma.
  3. Sisselogimine ja nõusolek. Kasutaja logib sisse Google’isse (kui pole veel) ning näeb nõusoleku ekraani, kus on loetletud, mida rakendus küsib. Ta klõpsab Allow.
  4. Tagasi koodiga. Google suunab brauseri tagasi rakenduse ümbersuunamise URI-le lühiajalise, ühekordse autoriseerimiskoodiga.
  5. Vahetus serveris. Rakenduse server saadab selle koodi koos kliendi saladusega otse Google’ile ja saab vastu juurdepääsutokeni (ning sageli värskendustokeni).
  6. API kasutamine. Server kutsub Google Calendari API-d juurdepääsutokeniga ja saab kasutaja sündmused.

Samm 4 callback näeb välja midagi sellist:

https://yourapp.com/auth/google/callback?code=4/0Adeu5B...&state=x7Kq9

Ja samm 5 tokeni vastus on JSON sarnane:

{
  "access_token": "ya29.a0Af...",
  "expires_in": 3599,
  "refresh_token": "1//0gL...",
  "scope": "https://www.googleapis.com/auth/calendar.readonly",
  "token_type": "Bearer"
}

Oluline disainipunkt: tokeni vahetus toimub serverite vahel, nii et kliendi saladus ja tokenid ei pea kunagi brauseri kaudu liikuma.

OAuth vs OpenID Connect vs oma sisselogimine

Mida see vastabNäide
OAuth 2.0„Mida see rakendus tohib kasutaja nimel teha?“ (autoriseerimine)Kasutaja kalendri lugemine
OpenID Connect (OIDC)„Kes see kasutaja on?“ (autentimine), OAuthi peal„Logi sisse Google’iga“, mis tagastab kinnitatud e-posti
Oma sisselogimine„Kas see on selle konto õige salasõna?“Salvestatud (räsitud) e-post ja salasõna sinu andmebaasis

Paljud rakendused ühendavad neid: e-posti ja salasõna sisselogimine, plus „Logi sisse Google’iga“ OIDC kaudu, plus eraldi OAuthi ühendused teistesse teenustesse.

Põhimõisted

MõisteTähendus
Pakkuja / autoriseerimisserverTeenus, kuhu kasutaja logib sisse ja kus annab juurdepääsu — Google, Microsoft, GitHub.
KlientSinu rakendus, nagu see on pakkuja juures registreeritud.
Kliendi IDSinu rakenduse avalik identifikaator pakkuja juures.
Kliendi saladusSinu rakenduse privaatne salasõna pakkuja juures. Ainult serveris.
Scope (õigus)Konkreetne luba, nagu „loe kalendrit“ või „vaata e-posti aadressi“.
Nõusoleku ekraanLeht, kus kasutaja näeb küsitud õigusi ja kinnitab need.
Ümbersuunamise URI / callback URLKuhu pakkuja kasutaja tagasi saadab. Peab olema registreeritud eelnevalt ja täpselt vastama.
JuurdepääsutokenLühiajaline tõend API kutsumiseks.
VärskendustokenPikemaajaline tõend uute juurdepääsutokenite saamiseks. Hoia seda nagu salasõna.
ID tokenOIDC-s allkirjastatud token, mis kirjeldab, kes kasutaja on.
PKCELisakontroll („tõendusvõti“), mis takistab pealtkuulatud koodide kasutamist. Soovitatav kõigile klientidele.
stateJuhuslik väärtus, mis kaitseb voogu võltsitud päringute eest.

Levinud väärarusaamad

  • „OAuth on sisselogimissüsteem.“ Tavaline OAuth annab juurdepääsu; OpenID Connect käsitleb identiteeti. Paljas juurdepääsutoken tõendina, kes keegi on, on põhjustanud päris turvavigu.
  • „Rakendus saab mu salasõna.“ Ei saa kunagi. Selles ongi mõte.
  • „Rohkemate õiguste küsimine on kahjutu.“ Kasutajad on laiade taotluste suhtes ettevaatlikumad ning teenusepakkujad nagu Google võivad tundlike või piiratud õiguste puhul nõuda rakenduse läbivaatust. Küsi ainult seda, mida vajad.
  • „Kliendi saladus võib minna esiossa.“ Kõik brauserikoodis on avalik. Hoia see serveripoolsete saladustena.
  • „Testimises töötab, seega töötab ka tootmises.“ Pakkujad piiravad sageli kontrollimata rakendusi — näiteks loetletud testkasutajatele — ning sinu live-domeeni ümbersuunamise URI tuleb registreerida eraldi.
  • „Tokenid kehtivad igavesti.“ Juurdepääsutokenid aeguvad kiiresti ja kasutajad saavad juurdepääsu tühistada. Sinu rakendus peab mõlemaga korrektselt toime tulema.

Mida AI ehitajalt paluda

  • „Lisa „Logi sisse Google’iga“ OpenID Connecti abil hästi hooldatud autentimisteegiga — ära kirjuta OAuthi voogu käsitsi.“
  • „Kasuta autoriseerimiskoodi voogu koos PKCE-ga ja kontrolli state-parameetrit.“
  • „Loe kliendi ID ja kliendi saladus serveris keskkonnamuutujatest.“
  • „Küsi ainult vajalikke õigusi: ainult lugemisjuurdepääs kalendrile.“
  • „Ütle mulle iga ümbersuunamise URL, mis tuleb teenusepakkuja konsoolis registreerida: eelvaate, avaldatud URL-i ja minu kohandatud domeeni jaoks.“
  • „Salvesta värskendustokenid andmebaasis krüpteeritult ning käsitle aegunud või tühistatud tokeneid, paludes kasutajal uuesti ühenduda.“
  • „Lase kasutajatel integratsioon oma seadete lehelt lahti ühendada.“

OAuth Mythexis

Mythexil ei ole sisseehitatud lõppkasutaja sisselogimist rakendustele, mida ehitad; dokumentatsioon kirjeldab lähenemist „too oma“ — sa valid autentimisteegi või hostitud pakkuja, hoiad selle võtmed projekti saladustena ning agent kirjutab koodi. Selleks on autentimise lisamise retsept koos alguspäringuga. OAuthiga kohtud ka Mythexis endas: saad registreeruda Google’iga, GitHubi ühendamine repo sünkroonimiseks kasutab GitHubi OAuthi ning AI kliendid, mis ühenduvad Mythexiga MCP kaudu, lähevad läbi OAuthi nõusoleku lehe. Lisateabe saamiseks vt mis on autentimine ja mis on kaheastmeline autentimine.

Küsimused

Mis on OAuth lihtsas keeles?

OAuth on standardne viis, kuidas kasutaja saab lasta ühel rakendusel pääseda ligi oma kontole teises teenuses — näiteks lasta ajastamisrakendusel lugeda tema Google’i kalendrit — andmata sellele rakendusele oma salasõna. Kasutaja kinnitab konkreetsed õigused ja rakendus saab tokeni, mida ta saab kasutada ainult nende jaoks.

Kas OAuth on sama mis „Logi sisse Google’iga“?

„Logi sisse Google’iga“ on ehitatud OAuth 2.0 ja OpenID Connecti peale; OpenID Connect on OAuthi peal olev kiht, mis lisab standardse viisi öelda rakendusele, kes kasutaja on. OAuth ise on juurdepääsu andmise kohta; OpenID Connect muudab selle sisselogimiseks.

Mis on OAuthi juurdepääsutoken?

Juurdepääsutoken on tõend, mille rakendus saadab teenuse API-le, et tõestada, et talle on juurdepääs antud. See on tavaliselt lühiajaline ja piiratud kasutaja kinnitatud õigustega (scope’idega). Värskendustoken, kui see välja anti, laseb rakendusel saada uusi juurdepääsutokeneid ilma kasutajalt uuesti küsimata.

Mida tähendab redirect_uri_mismatch?

See tähendab, et callback URL, mille su rakendus saatis sisselogimise ajal, ei vasta täpselt ühelegi arendajakonsoolis registreeritud URL-ile. Lisa täpne URL — sealhulgas https, domeen, tee ja mis tahes lõpu kaldkriips — iga aadressi kohta, kus su rakendus töötab.

Kas OAuth on turvaline?

OAuth 2.0 on laialt kasutusel ja turvaline, kui see on õigesti rakendatud: kasutades autoriseerimiskoodi voogu koos PKCE-ga, täpseid ümbersuunamise URL-e, state-parameetrit ning hoides kliendi saladust ja tokeneid serveris. Enamik probleeme tuleb rakendamise kiirteedest, mistõttu soovitatakse hästi hooldatud teegi kasutamist.

Mythex · Pricing · Ehita kõike AI-ga · Veebilehtede ja rakenduste mallid · Mythex võrdluses · Tehisintellektiga rakenduste ehitamise sõnastik · Tasuta tööriistad tehisintellektiga rakenduste ehitamiseks · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)