Ce este OAuth (Autorizare Deschisă) și de ce este important?
![](https://techrobot.com/wp-content/uploads/2022/02/89-What-is-OAuth-Open-Authorization-and-Why-is-it-Important.jpg)
Infracțiunile cibernetice reprezintă una dintre cele mai mari amenințări într-o generație în rapidă ascensiune și în continuă avansare tehnologică. O încălcare a datelor poate devasta afaceri, reputații și chiar guverne. Mai mult, este suficient ca un singur cont privilegiat, vulnerabil, să fie compromis de entități neautorizate pentru ca datele critice să fie “furate”. Lumea digitalizată generează, partajează, stochează mai multe date, iar conturile digitale sunt comune.
Multe servicii de pe internet sunt integrate și concepute să interacționeze unele cu altele. Totuși, utilizarea conturilor de servicii pentru a accesa aplicații și site-uri web implică practica nesigură de a stoca acreditări privilegiate, în principal fără autentificare multi-factor (MFA), și expune informații private riscului de compromitere.
Importanța confidențialității și securității datelor este incredibilă. Prin urmare, standardele deschise de securitate precum OAuth protejează informațiile personale și private în timpul transferului de date între terți. Standardul OAuth compilat de Internet Engineering Task Force (IETF) protejează proprietarii de resurse pe web în timp ce folosesc servicii terțe. Continuați să citiți pentru a afla mai multe despre OAuth.
Ce este OAuth?
OAuth (Open Authorization) este un cadru standard deschis care permite accesul terților la informații sau active legate de utilizatorii autentificați pe servere și servicii (cum ar fi site-uri web și aplicații) fără a partaja credențialele de autentificare. Oferă acces delegat securizat la resursele serverului în numele proprietarului resursei folosind autentificarea bazată pe token-uri. Cu toate acestea, protocolul de autentificare verifică identitatea utilizatorului folosind parole, telefon sau identitate biometrică și nu trebuie confundat cu protocolul de Open Authorization.
Spre deosebire de protocoalele de autentificare precum OpenID, OAuth autorizează accesul limitat la resurse după autentificarea cu succes. Companii precum Facebook, Google, Amazon, Twitter, Paypal, Netflix și Microsoft permit utilizatorilor lor să împărtășească informații despre cont cu site-uri web și aplicații terțe prin intermediul OAuth.
Standardul de autentificare și autorizare decuplat OAuth protejează informațiile utilizatorului prin acordarea accesului la resurse fără a dezvălui identitatea sau acreditările utilizatorului. Astfel, serviciile terțe pot solicita în numele unui utilizator fără a avea acces la parole și alte informații sensibile.
Mecanismul OAuth urmează un flux de autorizare cu trei componente cheie: furnizorul, proprietarul/utilizatorul și clientul/consumatorul. Furnizorul OAuth este serverul de autorizare și motorul principal al OAuth. Serverele de resurse (API-uri precum Facebook sau Google) utilizează OAuth pentru a se conecta la un site web terț sau la o aplicație în numele și cu aprobarea unui utilizator. Furnizorul îi oferă serviciului client un token de autentificare pentru acces, pentru autorizarea la informațiile găzduite de serverul de resurse. Utilizatorul deține datele/informațiile într-un server de resurse. Autentificarea utilizatorului confirmă partajarea informațiilor. Clientul este site-ul web sau aplicația care necesită acces la informațiile sau resursele utilizatorului.
Accesează serverul de resurse cu un token de acces. În final, programul client necesită înregistrare cu OAuth pentru ca autorizarea să poată continua. Procesul complet OAuth necesită multiple aprobări și toate cele trei componente pentru tranzacție/acces autorizat.
OAuth 1.0
Securitatea informațiilor utilizatorului este esențială odată cu creșterea partajării, stocării și utilizării datelor. Ca urmare, este important să integrăm standarde de autorizare sigure în aplicații și servicii web pentru a preveni breșele de date. OAuth este recunoscut ca fiind standardul cel mai sigur pentru partajarea informațiilor pentru site-uri web și API-uri. Standardul OAuth suportă multiple fluxuri pentru a aborda diferite scenarii de autorizare a aplicațiilor client și diferite capacități ale dispozitivelor. Acesta suportă aplicații server-to-server, aplicații web, aplicații mobile, site-uri web, console sau TV-uri.
Protocolul OAuth 1.0 a fost publicat în 2010 pentru a contracara lipsa standardelor deschise pentru delegarea accesului la API. Totuși, a fost lansat inițial în 2007 ca o metodă de autorizare pentru interfața aplicației Twitter. IETF a lansat OAuth 2.0 doi ani mai târziu ca un protocol de autorizare îmbunătățit și complet nou. Se diferențiază de prima versiune prin creșterea fluxurilor OAuth, token-uri cu durată scurtă de viață și incompatibilitatea cu versiunea anterioară OAuth 1.0.
OAuth 1.0 a gestionat delegarea cu un cadru bazat pe semnături digitale. A fost puternic și sigur, astfel încât jucători majori precum Google și Twitter l-au susținut și adoptat. Acesta a necesitat implementarea criptografiei și interoperabilitatea cripto, ceea ce l-a făcut foarte sigur. Totuși, este dificil pentru dezvoltatori să îl implementeze fără experiență adecvată în criptografie și capacități de gestionare a cheilor.
OAuth este în general un protocol de delegare care oferă permisiune și nu un protocol de autentificare precum OpenID – un strat de identitate construit pe baza protocolului OAuth 2.0. Deși multe aplicații folosesc OAuth 2.0 pentru autentificare și autorizare, acesta este specializat doar pentru autorizarea delegată.
Cadrul OAuth 2.0
Cadru OAuth 2.0 este protocolul standard în industrie pentru autorizare. O rescriere a protocolului original Open Authorization oferă o soluție mai cuprinzătoare pentru clienții moderni web și non-web. Cadru conține specificații care securizează și mai mult datele utilizatorilor. Acestea includ:
Expirarea Token-ului
Jetoanele OAuth sunt, în general, irevocabile și, în versiunea 1.0, acestea nu expiră. Ca urmare, jetoanele nu sunt complet sigure și sunt predispuse la amenințări. Având acces la un jeton sau secret de verificare, un client/utilizator neautorizat, cum ar fi hackerii și site-urile rău intenționate, poate face solicitări neautorizate și poate obține acces la acreditările și informațiile personale ale utilizatorilor. Cadru OAuth 2.0 depășește această slăbiciune cu jetoane expirabile. Odată ce jetonul de acces expiră, expiră și accesul la aplicație, cu excepția cazului în care un alt jeton de acces este generat prin ciclul de reîmprospătare. OAuth 2.0 generează jetoane de acces “cu durată scurtă de viață”. Acestea durează de la durata unei sesiuni până la câteva săptămâni, dar utilizează jetoane de reîmprospătare pentru a obține un nou jeton de acces, în loc să aibă utilizatorul să repete întregul proces pentru a reautoriza aplicația.
Dezvoltare Partea Clientului
OAuth 2.0 ia în considerare atât clienții non-web, cât și fluxurile web. OAuth 2.0 oferă fluxuri de autorizare specifice pentru aplicații web, aplicații desktop, telefoane mobile, televizoare/console și aplicații bazate pe non-browser, cum ar fi serviciile bazate pe API. De asemenea, este mult mai ușor de implementat, de lucrat cu acesta și de a oferi autentificare puternică.
Separarea Responsabilităților
OAuth 2.0 separă responsabilitățile livrării resurselor și gestionării autorizației utilizatorului. Servere fizic separate, sau chiar nume de domenii diferite, pot gestiona ambele roluri. Astfel, fiecare parte a sistemului se poate scala independent. Prin urmare, serverul de autorizare necesită ID-ul clientului și secretul, dar serverul API va accepta doar tokenuri de acces. În consecință, baza de date evită partajarea datelor cu serverele API. Acestea fac ca noul standard să fie mai aplicabil pentru întreprinderile mari. Acest lucru se datorează faptului că permite ca aceste sisteme să se întâmple independent, de către echipe diferite și pe cronologii diferite.
Token-uri de Acces și Cerințe Criptografice Eliminate
OAuth creează un echilibru între utilizarea ușoară a API-urilor și practicile bune de securitate. Utilizarea tokenului bearer simplifică implementarea OAuth prin eliminarea complexității semnăturilor criptografice din standardele OAuth 1.0. OAuth 2.0 necesită doar tokenul în sine în cerere.
Autentificare în Doi Factori
OAuth a utilizat metoda mai puțin sigură de autentificare cu un singur factor pentru divulgarea conturilor. Autentificarea cu un singur factor putea fi compromisă ușor, deoarece hackerilor le era suficient să obțină o singură piesă de informație pentru a obține acces. OAuth 2.0, totuși, necesită mai multe niveluri de autentificare pentru a acorda acces unui utilizator. Folosește tokenizarea și o natură cu doi factori pentru a securiza conturile utilizatorilor.
De ce este important OAuth?
Aplicații web sofisticate, aplicații mobile și modele de afaceri unice au apărut. Evoluția cazurilor de utilizare în noi scenarii face ca mecanismele tradiționale de autorizare să fie inadecvate. Multe dintre aceste scenarii necesită ca un server sau client să comunice (să se conecteze) cu mai multe servere pentru a executa o cerere sau acțiune. Ca urmare, necesitatea de a oferi noi soluții pentru partajarea datelor și federarea identității între mai multe părți de încredere este intensificată. OAuth este un cadru de securitate puternic care încearcă să rezolve provocările asociate cu autorizarea. Prin urmare, este important să integrăm OAuth în aplicații și site-uri web. Iată de ce:
Asigură securitatea informațiilor serverului chiar și în timpul partajării
Protocolul OAuth depinde de SSL (Secure Sockets Layer) pentru a asigura că datele între serverul web și browser rămân private. De fapt, este o piesă importantă a autentificării site-ului oricărei organizații, deoarece protejează credențialele utilizatorilor.
Tokenizarea permite acces limitat la datele utilizatorului
Informațiile sensibile, cum ar fi informațiile despre cardul de credit și dosarele medicale, sunt fiecărei atribuite ID-uri de token și stocate la distanță. Comercianții primesc tokenurile, nu datele reale. Astfel, informațiile partajate rămân private. Părțile terțe care nu au acces încă la dosarele lor medicale, parole sau numărul cardului de credit, pot verifica tokenul pentru tranzacții.
OAuth permite utilizarea autentificării unice (SSO)
SSO asigură acces ușor, controlează riscurile și oferă utilizatorilor control asupra datelor lor. Acesta îmbunătățește moralul și productivitatea utilizatorilor prin permiterea accesului la multiple aplicații cu doar un singur set de date de autentificare. Acesta consolidează acreditările utilizatorilor și simplifică procesul de autentificare pentru utilizatori. Aceasta elimină problema gestionării numeroaselor parole sau repetarea aceleiași informații atunci când se utilizează servicii online.
Le oferă utilizatorilor controlul asupra a ceea ce serviciile terțe pot face cu resursele lor
Procesele tradiționale necesită partajarea acreditărilor cu site-uri terțe pentru a partaja informații. Totuși, OAuth restricționează părțile terțe și împiedică efectuarea anumitor acțiuni rău intenționate, cum ar fi modificarea setărilor utilizatorului sau a acreditărilor acestuia și blocarea accesului utilizatorului la cont.
Concluzie
OAuth (Open Authorization) protejează informațiile utilizatorilor de scurgerile de date cât mai mult posibil. Primul protocol pentru OAuth 1.0 a fost rescris în OAuth 2.0. Industria de securitate cibernetică adoptă pe scară largă OAuth 2.0 ca fiind cea mai sigură opțiune pentru autorizare. Deși nu există un sistem de autorizare infailibil, OAuth este una dintre cele mai bune opțiuni. Site-uri precum Facebook, Twitter, LinkedIn, Google, Amazon, Instagram și GitHub folosesc OAuth ca tehnologia lor principală pentru autentificare și autorizare.