Turvalisus

OAuthi sisselogimise haldamine

OAuthi sisselogimise haldamine

Olulised asjad, mida peate teadma OAuthi kohta

OAuth on see, millest iga arendaja peab teadma. Kui teete eraldiseisvat rakendust või mõne muu HTTP-teenusega integreeritavat kolmanda osapoole rakendust, peate teadma, kuidas OAuth oma kasutajatele hõlpsasti kasutatava ja hästi integreeritud teenuse pakub.

Idee on võimaldada kliendirakendustel piiratud juurdepääs kasutajainfole ilma kasutaja mandaate või parooli kunagi jagamata. OAuthi raamistik vastutab vahetuste eest, mis on vajalikud enne, kui rakendus teie teabe saab.

Oletame, et soovite Dev-i kasutajaks registreeruda.kuni (mis on arendajatele suurepärane koht ideede vahetamiseks) lasevad nad teil oma GitHubi kontot kasutades registreeruda. Kuidas see juhtub? Kuidas nad saaksid teada, et teil on GitHubi konto, millega registreerute?

Veelgi olulisem on see, kuidas tagate, et Dev.to ei ületa oma piire, kui tegemist on teie GitHubi salvestatud teabega?

OAuthi osalejad

Jääme Atomi redaktori GitHubi pistikprogrammi näitele, mis võimaldab arendajatel Atomi liidese abil otse GitHubisse koodi lükata. Selle põhjuseks on näiteks see, et GitHub ei varja detaile stseeni taga ja näete, mis kapoti all toimub.

Enne kui jõuame OAuthi töö üksikasjadesse. Pange paika lava, tunnustades kõiki vahetuses osalejaid:

  1. Ressursi omanik või kasutaja: See kasutaja on see, kelle konto andmetele tuleb juurde pääseda (lugeda ja / või kirjutada), et see rakendusega töötaks.
  2. Klient: See on rakendus, mis küsib teie luba, et pääseda juurde teie teabele teisest teenusest. Meie näites on Atomi redaktor klient.
  3. Allikas: Ressurss on teie tegelik teave, mis asub serverites mõnes kaugemas asukohas. Sellele pääseb juurde API kaudu, kui kliendile on antud asjakohased õigused.
  4. Autoriseerimisserver: Liidestatud ka API kaudu. Seda serverit hooldab teenusepakkuja (meie näites GitHub). Nii autoriseerimisserverile kui ka ressursiserverile viidatakse kui API-le, kuna neid haldab üks üksus, antud juhul GitHub, ja need on API-na kliendi arendajale nähtavad.

OAuthi registreerimine

Protsess algab kliendirakenduse väljatöötamisel. Võite minna ressursside pakkuja juurde ja registreeruda nende arendaja portaalis või veebisaidi API jaotises. Samuti peate esitama tagasihelistamise URL-i, kuhu kasutaja suunatakse pärast nõustumist või tagasilükkamist rakendusele vajalike õiguste andmiseks.

Näiteks kui lähete menüüsse GitHub → Seaded → Arendaja seaded ja klõpsate nuppu „Uue rakenduse registreerimine”. See annaks teile a Kliendi ID mida saab avalikustada ja a Kliendi saladus mida arendajaorganisatsioon peab ... saladuses hoidma.

Pärast seda, kui teile, arendajale, antakse teile kliendi ID ja saladus peab hoidke neid turvaliselt, kuna autoriseerimisserver neid enam ei kuva. Sama kehtib ka kõigi muude märkide kohta, mida visatakse ringi (lisateavet hiljem märkide kohta).

OAuth 2 töövoog

Olete oma taotluse registreerinud. See on välja töötatud ja testitud ning nüüd on kasutajad valmis seda kasutama. Teie teenuses registreerumisel kuvatakse uuele kasutajale võimalus „Logi sisse GitHubiga”. See on esimene samm.

1. samm: autoriseerimistaotlus

Autoriseerimistaotlus on see osa, kus ressursi veebilehega avaneb uus aken (või sarnane viip) ja palutakse kasutajatel sisse logida. Kui olete selles seadmes juba sisse logitud, jäetakse see samm vahele ja GitHub küsib lihtsalt, kas soovite Atomi kliendirakendusele juurdepääsu anda. Atomi puhul on see palju läbipaistvam, kuna nad paluvad teil käsitsi GitHubi veebisaidile minna ja neile luba anda.

URL-i külastamisel küsitakse teilt luba.

Pange tähele, et URL, mis näitab, et see on GitHubi turvaline (HTTPS) veebileht.Inc. Nüüd võite kasutaja, kindel olla, et suhtlete otse GitHubiga. Aatom lihtsalt ootab, üsna kõrvale.

Erinevalt Atomist laadib enamik kliendirakendusi automaatselt sisselogimis- või lubade lehe. Kuigi see on väga mugav, saab seda ka väärkasutada, kui kliendirakendus otsustab avada andmepüügilingi. Selle vältimiseks peate alati kontrollima URL-i, kuhu teid suunatakse, ja veenduma, et see on õige URL ja kasutab HTTPS-protokolli.

2. samm: autoriseerimistoetuse saamine

Atomi kliendi teavitamiseks antakse teile luba (autoriseerimistoetus), mis seejärel esitatakse Atomi kliendile.

Kui kasutaja seda teeb, on kasutaja töö tehtud. (Tegelikult pole tüüpiline kasutaja isegi autoriseerimistoetuse vahetamisest teadlik. GitHubi näide valiti näitamaks, et nii juhtub).

3. samm: juurdepääsuloa hankimine

Autoriseerimistoetus pole ikka veel üksus, mis annab kliendile juurdepääsu kasutajaandmetele. Selle saavutamiseks kasutatakse midagi, mida nimetatakse juurdepääsulubaks. Millist kliendirakendust selles etapis proovitakse leida.

Selleks peab klient nüüd autoriseerimisserverile volituse andma koos enda identiteedi tõendamisega. Identiteet kontrollitakse kliendi rakendusele varem antud kliendi ID ja kliendi saladuse abil.

Identiteedikinnitus tehakse selleks, et veenduda, et kasutajat ei peteta kasutama ebaseaduslikku rakendust, mis teeskleb seaduslikku rakendust. Näiteks kui keegi otsustab nimetada oma käivitatava faili Atomiks sama nime, logo ja funktsioonidega, võidakse kasutajale petta anda kliendile juurdepääs, mis võib teie teavet väärkasutada. Nad saavad ilma teie nõusolekuta nuhkida või isegi tegutseda. Autoriseerimisserver tagab, et klient on tõepoolest selline, nagu tema kasutajatele tundub.

Kui identiteet on kontrollitud ja autoriseerimise lubamine on vastu võetud, viskab autoriseerimisserver kliendi rakendusele märgi. Mõelge märgist kui kasutajanime ja parooli kombinatsioonist, mille saab ressursiserverile anda juurdepääsuks konkreetsele kaitstud ressursile, millele ressursi omanik lubas teil juurde pääseda.

Lõpuks saab selle loa abil rakendus nüüd juurdepääsu ressursiserverilt nõutavale kasutajainfole ja muudele ressurssidele.

Pange tähele, kuidas kogu selles vahetuses tegelik kasutajanimi ja parool olid, kui neid kunagi kliendiga ei jagatud? See on OAuthi ilu. Selle asemel, et anda kasutajanimi ja paroolid, mis annaksid rakendusele kogu juurdepääsu ressursile, kasutab ta selle asemel märke. Ja märgil on ressursile vaid piiratud juurdepääs.

Lubade tühistamine

Oletame, et kaotate juurdepääsu oma seadmele, milles oli volitatud kliendirakendus. Volituste andmise ja juurdepääsuloa tühistamiseks võite sisse logida GitHubi ja minna menüüsse Seaded → Rakendused → Volitatud OAuthi rakendused. Ma teen sama, kuna ülaltoodud ekraanipiltides kuvati autoriseerimistoetust avalikult.

Nüüd, kui olete linnulennult vaadanud, kuidas OAuth 2.Lisateavet autoriseerimise andmise ja muude protokolli täpsemate üksikasjade ning API-kõnede kohta leiate siit.

Kuidas muuta hiire vasakut ja paremat nuppu Windows 10 PC-s
On üsna tavaline, et kõik arvutihiirte seadmed on ergonoomiliselt mõeldud parempoolsete kasutajate jaoks. Kuid on olemas hiire seadmeid, mis on spetsi...
Jäljendage hiireklikke, hõljutades hiirega klõpsutut hiirt Windows 10-s
Hiire või klaviatuuri kasutamine liigses kasutamises vales asendis võib põhjustada palju terviseprobleeme, sealhulgas tüve, karpaalkanali sündroom ja ...
Nende tasuta tööriistade abil lisage Windows 10-le hiire liigutused
Viimastel aastatel on arvutid ja operatsioonisüsteemid palju arenenud. Oli aeg, mil kasutajad pidid failihaldurites navigeerimiseks kasutama käske. Na...