Autentificare și autorizare, openid și oauth

autentificare

Autentificarea este procedura de autentificare. Este necesar să se asigure că utilizatorul este cel care pretinde că este. Pe Internet, procedura obișnuită de autentificare constă în introducerea datelor de conectare și a parolei utilizatorului. Forma generală de autentificare este prezentată în figura de mai jos.

Autentificare și autorizare, openid și oauth

De fapt, acesta este primul pas care trebuie efectuat în procesul de introducere a unui sistem închis. Când utilizatorul introduce datele, verificăm dacă utilizatorul există cu acreditările solicitate. Dacă utilizatorul nu este găsit, este afișată de obicei eroarea "User not found".

Uneori autentificarea este suficientă pentru a verifica dacă utilizatorul este cel care susține că este (știe fraza secretă - parola).

  1. Asigurați-vă că cererea de intrare este autentificată
  2. Verificați că utilizatorul are drepturi la resursa solicitată.

Autentificare și autorizare, openid și oauth

În unele cazuri, ambele acțiuni sunt efectuate într-un singur pas. Ultimii ani s-au extins la alte sisteme de autentificare. Există o modalitate de a afla utilizatorii care nu sunt înregistrați în sistemul nostru? În acest caz, apelați la terța parte. Sistemul A solicită B pentru autentificarea utilizatorului, dacă sistemul de operare A reușește, presupune că utilizatorul este cunoscut. Acest concept se numește "Identitate federată". Serviciile populare au implementat deja suport pentru această tehnologie.

Identitate federată

Principala Identitate Federală FlowChart este prezentată mai jos.

Autentificare și autorizare, openid și oauth

De ce să folosiți identitatea federalizată?

Care sunt protocoalele de identitate federalizate? Principala folosită astăzi este OpenID și OAuth.

Există 3 concepte importante în autentificarea OpenID:

  1. Utilizator - utilizator care face o cerere de autentificare
  2. Provider este un sistem care stochează datele utilizatorilor și procesează cereri OpenID
  3. RelyingParty este o parte dependentă care dorește să autentifice utilizatorul.

Procesul de autentificare pentru OpenID este descris în următorii pași:

  1. Utilizatorul încearcă să acceseze resursa privată a părții dependente (partea invocată);
  2. Partea dependentă solicită utilizatorului autentificarea;
  3. Utilizatorul trimite adresa URL OpenID;
  4. Partea dependentă redirecționează utilizatorul la furnizorul OpenID pentru autentificare;
  5. Utilizatorul introduce informațiile de conectare;
  6. Furnizorul OpenID autentifică utilizatorul;
  7. În cazul unei autentificări reușite, furnizorul redirecționează utilizatorul înapoi la partea dependentă, inclusiv informațiile de identificare;
  8. Partea dependentă verifică jetonul de la furnizor și permite utilizatorului.
  1. Utilizator - utilizatorul care face cererea;
  2. Furnizor - un sistem care conține informații despre utilizator și oferă un API pentru accesarea acestora;
  3. Consumator - Aceasta este terța parte care solicită utilizatorului permisiunea de a accesa informații pentru a putea face cereri în numele utilizatorului.

Fluxul de lucru este după cum urmează:

OpenID vs. OAuth

Este clar că sistemele OpenID și OAuth au avantajele și dezavantajele lor. Cu toate acestea, capacitățile OAuth mă atrag mai mult.

Construirea unui sistem OAuth

Odată am implementat sistemul meu OAuth. Dacă există o sarcină de a implementa sistemul industrial OAuth - este mai bine să folosiți biblioteci gata făcute. Pentru a înțelege cum funcționează sau rezolvă o problemă îngustă, poți folosi diagrama de mai jos.

Autentificare și autorizare, openid și oauth

În acest exemplu există 3 caractere.

Schema de lucru