Sobes.tech
Junior

Šta je osnovna autentifikacija (Basic Auth)?

sobes.tech АИ

Одговор од АИ

Osnovna autentifikacija je najjednostavniji način autentifikacije HTTP klijenta, definisan u standardu RFC 7617.

Princip rada:

  1. Klijent šalje HTTP zahtev za zaštićeni resurs.
  2. Server odgovara sa statusom 401 Unauthorized i zaglavljem WWW-Authenticate: Basic realm="<realm>", gde je <realm> tekstualni opis zaštićene oblasti (resursa).
  3. Pregledač ili klijentska aplikacija prikazuje dijalog za unos korisničkog imena i lozinke.
  4. Klijent kodira korisničko ime i lozinku u niz u formatu username:password.
  5. Dobijeni niz se kodira pomoću Base64.
  6. Klijent ponovo šalje zahtev, dodajući zaglavlje Authorization: Basic <base64_kodiran_niz>, gde je <base64_kodiran_niz> rezultat Base64 kodiranja.
  7. Server dekodira Base64 niz, razdvaja korisničko ime i lozinku i proverava podatke.
  8. Ako su podaci tačni, server šalje traženi resurs. U suprotnom, ponovo vraća 401 Unauthorized.

Primer zaglavlja Authorization:

Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

gde je YWxhZGRpbjpvcGVuc2VzYW1l Base64 kodirani niz od aladdin:opensesame.

Karakteristike:

  • Jednostavnost: Lako se implementira i na klijentskoj i na serverskoj strani.
  • Nesigurnost: Podaci za prijavu se prenose, iako su kodirani u Base64, ali nisu šifrovani. Base64 je kodiranje, a ne šifrovanje. Pri presretanju saobraćaja, podaci se lako mogu dešifrovati. Samo u kombinaciji sa HTTPS pruža minimalni nivo sigurnosti.
  • Bez stanja: Ne čuva stanje na serveru između zahteva (stateless). Svaki zahtev zahteva zaglavlje Authorization.
  • Korisničko iskustvo: Dijalog prozora pretraživača je manje fleksibilan i manje korisnički prijateljski u poređenju sa prilagođenim obrascima za autentifikaciju.

Upotreba: Najčešće se koristi za zaštitu API-ja, statičkih resursa ili u jednostavnim internim sistemima gde sigurnost nije kritična, ili uvek u kombinaciji sa SSL/TLS (HTTPS).