Lauaarvuti- ja mobiilirakendused on rakendusse integreeritud brauserid, mis aitavad kogu OAuth 2.0 protsessi lõpule viia
Protsess on näidatud joonisel
OAuth2.0 veeb 1) Tagasta authCode määratud veebiredirectUri-le (selle URI seadistab rakenduse arendaja) 2) Tokeni muutmiseks tuleb sisestada clientId ja clientSecret, et kinnitada kliendi identiteeti (mille on saanud rakenduse taustateenus)
Võttes arvesse eelnevaid kahte punkti, 1) Kuna veebirakenduse ümbersuunamise Uri tuvastamine ei ole kehtetu. 2) Kuna puudub backend-teenus, ei ole klient turvaline Seejärel võib meil esineda võidav rünnak olla nii, nagu alloleval joonisel näidatud – võib olla pahatahtlik rakendus, mis püüab authCode'i, et saata sõnum AuthorizationServerile tokeni saamiseks, nii et token saadakse ilma kliendi loata rakendusele, kuid teise ametliku rakenduse autoriseerimise kaudu, saavutades rünnaku eesmärgi.
Lahendus:
1. Klient genereerib juhusliku stringi: koodikontrollija ja salvestab selle juhusliku stringi code_challenge = transform(code_verifier, [Plain| S256]) Kui teisendusmeetod on lihtne, siis koodi väljakutse on ekvivalentne koodi kontrollijaga Kui teisendusmeetod on S256, siis koodi väljakutse on võrdne koodikontrollija Sha256 räsiga 2. Too koodiväljakutse autoriseerimiskoodi päringule ja kuidas koodiväljakutset genereerida. Need kaks on seotud serveri väljastatud autoriseerimiskoodiga 3. Pärast autoriseerimiskoodi saamist toob klient algselt genereeritud koodikontrollija, vahetades autoriseerimiskoodi Access Tokeni vastu. Server arvutab koodikontrollija vastavalt piiratud teisendusmeetodile, võrdleb arvutatud tulemust piiratud koodi väljakutsega ning väljastab Access Tokeni, kui see on kooskõlas. |