Daim duab qhia txog OAuth thiab OpenID Txuas

Nco tseg. txhais.: Cov kab lus zoo no los ntawm Okta piav qhia yuav ua li cas OAuth thiab OIDC (OpenID Txuas) ua haujlwm yooj yim thiab meej. Qhov kev paub no yuav muaj txiaj ntsig zoo rau cov neeg tsim khoom, cov thawj coj ua haujlwm, thiab txawm tias "cov neeg siv tsis tu ncua" ntawm cov ntawv thov web nrov, uas feem ntau yuav pauv cov ntaub ntawv tsis pub lwm tus paub nrog lwm cov kev pabcuam.

Nyob rau hauv lub hnub nyoog pob zeb ntawm Internet, sib qhia cov ntaub ntawv ntawm cov kev pab cuam yog ib qho yooj yim. Koj tsuas yog muab koj tus ID nkag mus thiab tus password los ntawm ib qho kev pabcuam mus rau lwm qhov, kom nws nkag mus rau koj tus account thiab tau txais cov ntaub ntawv nws xav tau.

Daim duab qhia txog OAuth thiab OpenID Txuas
"Muab koj tus account hauv txhab nyiaj rau kuv." "Peb cog lus tias txhua yam yuav zoo nrog tus password thiab nyiaj. Qhov ntawd yog ncaj ncees, ncaj ncees!" *hehe hehehe*

Ntshai heev! Tsis muaj leej twg yuav tsum tau xav kom tus neeg siv qhia tus username thiab password, cov ntaub ntawv pov thawj, nrog rau lwm qhov kev pabcuam. Tsis muaj kev lees paub tias lub koom haum tom qab qhov kev pabcuam no yuav khaws cov ntaub ntawv ruaj ntseg thiab yuav tsis sau cov ntaub ntawv tus kheej ntau dua li qhov tsim nyog. Nws yuav zoo li vwm, tab sis qee cov apps tseem siv qhov kev xyaum no!

Niaj hnub no muaj ib qho qauv uas tso cai rau ib qho kev pabcuam kom ruaj ntseg siv cov ntaub ntawv ntawm lwm tus. Hmoov tsis zoo, cov qauv no siv ntau yam jargon thiab cov ntsiab lus, uas ua rau lawv nkag siab nyuaj. Lub hom phiaj ntawm cov khoom no yog piav qhia lawv ua haujlwm li cas siv cov duab kos yooj yim (Koj puas xav tias kuv cov duab kos zoo li cov menyuam yaus daubing? Oh zoo!).

Daim duab qhia txog OAuth thiab OpenID Txuas

Los ntawm txoj kev, phau ntawv qhia no kuj muaj nyob rau hauv video hom:

Cov poj niam thiab cov txiv neej, txais tos: OAuth 2.0

OAuth 2.0 Cov yog tus qauv kev ruaj ntseg uas tso cai rau ib daim ntawv thov kom tau txais kev tso cai nkag mus rau cov ntaub ntawv hauv lwm daim ntawv thov. Ib ntus ntawm cov kauj ruam rau kev muab daim ntawv tso cai [tso cai] (los yog kev tso cai [kev pom zoo]) feem ntau hu kev tso cai [kev tso cai] los sis txawm tso cai tso cai [kev tso cai delegated]. Nrog rau tus qauv no, koj tso cai rau ib daim ntawv thov nyeem cov ntaub ntawv lossis siv cov haujlwm ntawm lwm daim ntawv thov rau koj yam tsis tau muab koj tus password rau nws. Chav kawm!

Ua piv txwv, cia peb hais tias koj nrhiav tau ib qhov chaw hu ua "Unlucky Pun of the Day" [Thiab Pun ntawm Hnub] thiab txiav txim siab sau npe rau nws thiaj li yuav tau txais cov ntawv sau txhua hnub hauv daim ntawv ntawm cov ntawv hauv xov tooj. Koj yeej nyiam qhov chaw, thiab koj txiav txim siab los qhia rau tag nrho koj cov phooj ywg. Tom qab tag nrho, txhua leej txhua tus nyiam creepy puns, txoj cai?

Daim duab qhia txog OAuth thiab OpenID Txuas
"Pun hmoov tsis zoo ntawm lub hnub: hnov ​​txog tus txiv leej tub uas poob sab laug ib nrab ntawm nws lub cev? Tam sim no nws yeej ib txwm yog!” (kwv yees txhais, vim hais tias tus thawj muaj nws tus kheej pun - approx. transl.)

Nws yog qhov tseeb tias kev sau ntawv rau txhua tus neeg los ntawm cov npe hu tsis yog ib qho kev xaiv. Thiab, yog tias koj txawm me ntsis zoo li kuv, ces koj yuav mus rau txhua qhov ntev kom tsis txhob ua haujlwm tsis tsim nyog. Hmoov zoo, Terrible Pun of the Day tuaj yeem caw tag nrho koj cov phooj ywg los ntawm nws tus kheej! Txhawm rau ua qhov no, koj tsuas yog yuav tsum qhib kev nkag mus rau koj tus email chaw nyob - lub xaib nws tus kheej yuav xa lawv cov ntawv caw (OAuth cov cai)!

Daim duab qhia txog OAuth thiab OpenID Txuas
β€œTxhua tus nyiam puns! - Twb tau nkag rau hauv? β€œKoj puas xav tso cai rau lub vev xaib txaus ntshai Pun of the Day nkag mus rau koj cov npe hu? - Ua tsaug! Txij ntawm no mus, peb yuav xa cov lus ceeb toom txhua hnub rau txhua tus neeg koj paub, txog thaum kawg! Koj yog phooj ywg zoo tshaj!"

  1. Xaiv koj qhov kev pabcuam email.
  2. Yog tias tsim nyog, mus rau qhov chaw xa ntawv thiab kos npe rau hauv koj tus account.
  3. Muab kev tso cai txaus ntshai Pun of the Day nkag mus rau koj cov neeg.
  4. Rov qab mus rau Terrible Pun of the Day site.

Yog tias koj hloov siab, cov ntawv thov siv OAuth kuj tseem muab txoj hauv kev tshem tawm kev nkag mus. Thaum koj txiav txim siab tias koj tsis xav muab kev sib cuag nrog Terrible Pun of the Day, koj tuaj yeem mus rau qhov chaw xa ntawv thiab tshem tawm qhov chaw pun los ntawm cov npe ntawm cov ntawv tso cai.

OAuth Flow

Peb nyuam qhuav dhau los ntawm qhov feem ntau hu ua ntws [Flow] OAuth. Hauv peb qhov piv txwv, qhov dej ntws no muaj cov kauj ruam pom, nrog rau ob peb kauj ruam tsis pom, uas ob qhov kev pabcuam pom zoo rau kev sib pauv ntaub ntawv ruaj ntseg. Cov piv txwv yav dhau los Terrible Pun of the Day siv qhov feem ntau OAuth 2.0 ntws, hu ua "kev tso cai code" ntws. ["kev tso cai code" flow].

Ua ntej dhia mus rau hauv cov ntsiab lus ntawm OAuth ua haujlwm li cas, cia peb tham txog lub ntsiab lus ntawm qee cov ntsiab lus:

  • Cov tswv cuab:

    Daim duab qhia txog OAuth thiab OpenID Txuas

    Nws yog koj! Koj muaj koj daim ntawv pov thawj, koj cov ntaub ntawv, thiab tswj txhua yam haujlwm uas yuav ua tau ntawm koj tus account.

  • Client:

    Daim duab qhia txog OAuth thiab OpenID Txuas

    Ib daim ntawv thov (piv txwv li, Kev Pabcuam Txaus Ntshai Hnub) uas xav nkag mus lossis ua qee yam ua sawv cev ntawm Cov tswv cuab'ua.

  • Kev Tso Cai Server:

    Daim duab qhia txog OAuth thiab OpenID Txuas

    Lub app uas paub Cov tswv cuab'a thiab hauv qhov twg koj Cov tswv cuab'ib tug account lawm.

  • cov ntaub ntawv server:

    Daim duab qhia txog OAuth thiab OpenID Txuas

    Daim ntawv thov programming interface (API) lossis kev pabcuam ntawd Client xav siv sawv cev Cov tswv cuab'ua.

  • Redirect URI:

    Daim duab qhia txog OAuth thiab OpenID Txuas

    Qhov link ntawd Kev Tso Cai Server yuav redirect Cov tswv cuab'thiab tom qab tso cai Client'ua. Nws yog qee zaum hu ua "Callback URL".

  • teb hom:

    Daim duab qhia txog OAuth thiab OpenID Txuas

    Hom ntaub ntawv xav kom tau txais Client. Feem ntau teb hom'ohm yog code, uas yog Client cia siab tias yuav tau txais Ntawv Tso Cai.

  • Scope:

    Daim duab qhia txog OAuth thiab OpenID Txuas

    Nov yog cov lus piav qhia ntxaws txog cov kev tso cai uas yuav tsum tau ua Client'y, xws li nkag mus rau cov ntaub ntawv lossis ua qee yam ua.

  • Kev tso cai:

    Daim duab qhia txog OAuth thiab OpenID Txuas

    Kev Tso Cai Server yuav siv sij hawm Ntwsthov Client'om, thiab nug Cov tswv cuab'a, puas yog nws npaj muab Client'muaj kev tso cai tsim nyog.

  • Neeg ID:

    Daim duab qhia txog OAuth thiab OpenID Txuas

    Qhov no ID yog siv los txheeb xyuas Client'ib on Kev Tso Cai Server'e.

  • Khwv Nyiaj Khwv Nyiaj:

    Daim duab qhia txog OAuth thiab OpenID Txuas

    Qhov no yog tus password uas tsuas paub Client'u thiab Kev Tso Cai Server'ua. Nws tso cai rau lawv faib cov ntaub ntawv ntiag tug.

  • Ntawv Tso Cai:

    Daim duab qhia txog OAuth thiab OpenID Txuas

    Ib ntus code nrog lub sijhawm luv luv ntawm kev siv tau, uas Client muab Kev Tso Cai Server'y pauv rau Kev Siv Token.

  • Kev Siv Token:

    Daim duab qhia txog OAuth thiab OpenID Txuas

    Tus yuam sij uas tus neeg siv yuav siv los sib txuas lus nrog cov ntaub ntawv server'om. Ib hom ntawv cim lossis daim npav tseem ceeb uas muab Client'muaj kev tso cai thov cov ntaub ntawv lossis ua haujlwm rau cov ntaub ntawv server'e rau koj.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Qee lub sij hawm Kev Tso Cai Server thiab Resource Server yog tib lub server. Txawm li cas los xij, qee zaum, cov no yuav yog cov servers sib txawv, txawm tias lawv tsis koom nrog tib lub koom haum. Piv txwv li, Kev Tso Cai Server tuaj yeem yog qhov kev pabcuam thib peb uas ntseeg tau los ntawm Lub Chaw Pabcuam Kev Pabcuam.

Tam sim no peb tau hais txog cov ntsiab lus tseem ceeb ntawm OAuth 2.0, cia peb rov qab mus rau peb qhov piv txwv thiab ua tib zoo saib seb qhov tshwm sim hauv OAuth ntws.

Daim duab qhia txog OAuth thiab OpenID Txuas

  1. Koj, Cov tswv cuab, koj xav muab qhov txaus ntshai Pun ntawm hnub kev pabcuam (Clienty) nkag mus rau koj cov neeg sib cuag kom lawv tuaj yeem xa cov ntawv caw rau tag nrho koj cov phooj ywg.
  2. Client redirects tus browser mus rau nplooj ntawv Kev Tso Cai Server'a thiab suav nrog hauv cov lus nug Neeg ID, Redirect URI, teb hom thiab ib lossis ntau dua Ntws (kev tso cai) nws xav tau.
  3. Kev Tso Cai Server txheeb xyuas koj, nug tus username thiab password yog tias tsim nyog.
  4. Kev Tso Cai Server qhia ib daim ntawv Kev tso cai (confirmations) nrog ib daim ntawv teev tag nrho Ntwsthov Client'om. Koj pom zoo lossis tsis kam.
  5. Kev Tso Cai Server redirects koj mus rau lub site Client'a, siv Redirect URI ua ke nrog Ntawv Tso Cai (kev tso cai code).
  6. Client sib txuas lus ncaj qha nrog Kev Tso Cai Server'ohm (bypassing browser Cov tswv cuab'a) thiab xa mus kom nyab xeeb Neeg ID, Khwv Nyiaj Khwv Nyiaj ΠΈ Ntawv Tso Cai.
  7. Kev Tso Cai Server xyuas cov ntaub ntawv thiab teb nrog Kev Siv Token'om (access token).
  8. Tam sim no Client siv tau Kev Siv Token xa ib daim ntawv thov rau cov ntaub ntawv server kom tau ib daim ntawv teev npe hu.

Client ID thiab zais cia

Ntev ua ntej koj tso cai txaus ntshai Pun ntawm Hnub kom nkag mus rau koj cov neeg sib cuag, Cov Neeg Siv Khoom thiab Cov Ntawv Tso Cai tau tsim muaj kev sib raug zoo ua haujlwm. Kev Tso Cai Server tau tsim cov Client ID thiab Client Secret (qee zaum hu ua ID daim ntawv thov ΠΈ App zais cia) thiab xa lawv mus rau Client rau kev sib cuam tshuam ntxiv hauv OAuth.

Daim duab qhia txog OAuth thiab OpenID Txuas
"- Nyob zoo! Kuv xav ua haujlwm nrog koj! - Tseeb, tsis muaj teeb meem! Nov yog koj tus Client ID thiab zais cia!”

Lub npe qhia tias Client Secret yuav tsum tau khaws cia zais cia kom tsuas yog Client thiab Authorization Server paub nws. Tom qab tag nrho, nws yog nrog nws cov kev pab uas tso cai Server lees paub qhov tseeb ntawm tus neeg siv khoom.

Tab sis tsis yog tag nrho... Thov txais tos OpenID Txuas!

OAuth 2.0 tsuas yog tsim los rau kev tso cai - muab kev nkag mus rau cov ntaub ntawv thiab kev ua haujlwm ntawm ib daim ntawv thov mus rau lwm qhov. OpenID Txuas (ODC) yog txheej nyias nyias nyob rau sab saum toj ntawm OAuth 2.0 uas ntxiv tus ID nkag mus thiab cov ntsiab lus ntawm tus neeg siv uas tau kos npe rau hauv tus account. Lub koom haum ntawm kev sib ntsib tus ID nkag mus feem ntau hu ua kev lees paub [authentication], thiab cov ntaub ntawv hais txog tus neeg siv nkag mus rau hauv qhov system (piv txwv li hais txog Cov tswv cuab'e), β€” tus kheej cov ntaub ntawv [Identity]. Yog tias Kev Tso Cai Server txhawb ODDC, qee zaum nws raug hu ua muab cov ntaub ntawv tus kheej [Identity provider]vim nws muab Client'muaj ntaub ntawv hais txog Cov tswv cuab'e.

OpenID Connect tso cai rau koj los siv cov xwm txheej uas ib tus ID nkag mus siv tau rau hauv ntau daim ntawv thov - txoj hauv kev no tseem hu ua ib leeg kos npe rau (SSO). Piv txwv li, ib daim ntawv thov yuav txhawb nqa SSO kev koom ua ke nrog kev sib raug zoo xws li Facebook lossis Twitter, tso cai rau cov neeg siv siv tus account uas lawv twb muaj thiab nyiam siv.

Daim duab qhia txog OAuth thiab OpenID Txuas

Qhov ntws (ntws) OpenID Connect zoo ib yam li hauv rooj plaub ntawm OAuth. Qhov sib txawv tsuas yog nyob rau hauv thawj qhov kev thov, qhov tshwj xeeb siv yog openid, -A Client nws thiaj li tau zoo li Kev Siv Token, thiab ID Token.

Daim duab qhia txog OAuth thiab OpenID Txuas

Ib yam li hauv OAuth ntws, Kev Siv Token hauv OpenID Connect, qhov no yog qee tus nqi uas tsis meej Client'ua. Los ntawm qhov pom Client'A Kev Siv Token sawv cev rau ib txoj hlua ntawm cov cim uas tau dhau nrog rau txhua qhov kev thov rau cov ntaub ntawv server'y, uas txiav txim siab seb lub token puas siv tau. ID Token sawv cev rau qhov sib txawv kiag li.

ID Token yog JWT

ID Token yog ib txoj hlua tshwj xeeb ntawm cov cim hu ua JSON Web Token lossis JWT (qee zaum JWT tokens tau hais zoo li "jots"). Rau cov neeg soj ntsuam sab nraud, JWT tej zaum yuav zoo li tsis nkag siab gibberish, tab sis Client tuaj yeem rho tawm ntau yam ntaub ntawv los ntawm JWT, xws li ID, username, ID nkag mus, hnub tas sijhawm ID Token'a, muaj kev sim cuam tshuam nrog JWT. Cov ntaub ntawv hauv ID Token'a npe daim ntawv thov [kev thov].

Daim duab qhia txog OAuth thiab OpenID Txuas

Nyob rau hauv rooj plaub ntawm ODDC, kuj tseem muaj txoj hauv kev los ntawm tus qauv Client tuaj yeem thov cov ntaub ntawv ntxiv txog tus kheej [Identity] los ntawm Kev Tso Cai Server'a, piv txwv li, email chaw nyob siv Kev Siv Token.

Kawm paub ntau ntxiv txog OAuth thiab ODDC

Yog li, peb tau piav qhia luv luv li cas OAuth thiab ODC ua haujlwm. Npaj kom khawb tob? Nov yog cov peev txheej ntxiv los pab koj kawm ntxiv txog OAuth 2.0 thiab OpenID Txuas:

Raws li ib txwm muaj, xav tias dawb los tawm tswv yim. Txhawm rau txuas ntxiv nrog peb cov xov xwm tshiab, sau npe rau Twitter ΠΈ YouTube Okta rau developers!

PS los ntawm tus txhais lus

Nyeem kuj ntawm peb blog:

Tau qhov twg los: www.hab.com

Ntxiv ib saib