Sobes.tech
Junior

Ce este autentificarea de bază (Basic Auth)?

sobes.tech AI

Răspuns de la AI

Autentificarea de bază este cel mai simplu mod de autentificare a clientului HTTP, definit în standardul RFC 7617.

Principiul de funcționare:

  1. Clientul trimite o solicitare HTTP către o resursă protejată.
  2. Serverul răspunde cu un status 401 Unauthorized și un antet WWW-Authenticate: Basic realm="<realm>", unde <realm> este o descriere textuală a zonei protejate (resursă).
  3. Browserul sau aplicația client afișează o fereastră de dialog pentru introducerea numelui de utilizator și a parolei.
  4. Clientul codifică numele de utilizator și parola într-un șir în formatul username:password.
  5. Șirul obținut este codificat folosind Base64.
  6. Clientul repetă solicitarea, adăugând antetul Authorization: Basic <șir_base64_codificat>, unde <șir_base64_codificat> este rezultatul codificării Base64.
  7. Serverul decodează șirul Base64, separă numele de utilizator și parola și verifică datele de autentificare.
  8. Dacă datele sunt corecte, serverul trimite resursa solicitată. Altfel, răspunde din nou cu 401 Unauthorized.

Exemplu de antet Authorization:

Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

unde YWxhZGRpbjpvcGVuc2VzYW1l este un șir codificat în Base64 al lui aladdin:opensesame.

Caracteristici:

  • Simplitate: Ușor de implementat atât pe partea client, cât și pe partea server.
  • Insecuritate: Datele de autentificare sunt transmise, chiar dacă sunt codificate în Base64, dar nu sunt criptate. Base64 este o codificare, nu o criptare. La interceptarea traficului, datele pot fi decodificate ușor. Doar în combinație cu HTTPS oferă un nivel minim de securitate.
  • Fără stare: Nu păstrează stare pe server între solicitări (stateless). Fiecare solicitare necesită antetul Authorization.
  • Experiența utilizatorului: Fereastra de dialog a browserului este mai puțin flexibilă și mai puțin prietenoasă comparativ cu formularele personalizate de autentificare.

Utilizare: Este folosit în principal pentru protejarea API-urilor, resurselor statice sau în sisteme interne simple, unde securitatea nu este critică, sau întotdeauna în combinație cu SSL/TLS (HTTPS).