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:
- Clientul trimite o solicitare HTTP către o resursă protejată.
- Serverul răspunde cu un status
401 Unauthorizedși un antetWWW-Authenticate: Basic realm="<realm>", unde<realm>este o descriere textuală a zonei protejate (resursă). - Browserul sau aplicația client afișează o fereastră de dialog pentru introducerea numelui de utilizator și a parolei.
- Clientul codifică numele de utilizator și parola într-un șir în formatul
username:password. - Șirul obținut este codificat folosind Base64.
- Clientul repetă solicitarea, adăugând antetul
Authorization: Basic <șir_base64_codificat>, unde<șir_base64_codificat>este rezultatul codificării Base64. - Serverul decodează șirul Base64, separă numele de utilizator și parola și verifică datele de autentificare.
- 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).