Sobes.tech
Junior

Mi az a alapvető hitelesítés (Basic Auth)?

sobes.tech MI

Válasz az MI-től

Az alapvető hitelesítés a legegyszerűbb módja annak, hogy egy HTTP-kliens hitelesítést végezzen, az RFC 7617 szabvány szerint.

Működési elv:

  1. A kliens HTTP-kérést küld egy védett erőforráshoz.
  2. A szerver válaszol egy 401 Unauthorized státusszal és egy WWW-Authenticate: Basic realm="<realm>" fejlécet ad, ahol <realm> a védett terület (erőforrás) szöveges leírása.
  3. A böngésző vagy a kliens alkalmazás megjelenít egy párbeszédablakot a felhasználónév és jelszó megadására.
  4. A kliens kódolja a felhasználónevet és jelszót egy username:password formátumú sztringgé.
  5. A kapott sztringet Base64 segítségével kódolja.
  6. A kliens ismétli a kérést, hozzáadva az Authorization: Basic <base64_kódolt_sztring> fejlécet, ahol <base64_kódolt_sztring> a Base64 kódolás eredménye.
  7. A szerver dekódolja a Base64 sztringet, szétválasztja a felhasználónevet és a jelszót, és ellenőrzi az adatokat.
  8. Ha az adatok helyesek, a szerver elküldi a kért erőforrást. Ellenkező esetben újra válaszol 401 Unauthorized-al.

Az Authorization fejléc példája:

Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

ahol a YWxhZGRpbjpvcGVuc2VzYW1l a aladdin:opensesame Base64-kódolt sztringje.

Jellemzők:

  • Egyszerűség: Könnyen megvalósítható mind kliens, mind szerver oldalon.
  • Biztonságtalan: A hitelesítési adatok továbbításra kerülnek, még ha Base64-ben is vannak kódolva, de nem titkosítva. A Base64 kódolás, nem titkosítás. A forgalom elfogása esetén az adatok könnyen dekódolhatók. Csak HTTPS-szel kombinálva nyújt minimális biztonsági szintet.
  • Állapot nélküli: Nem tartja meg az állapotot a szerver a kérések között (stateless). Minden kéréshez szükséges az Authorization fejléc.
  • Felhasználói élmény: A böngésző párbeszédablaka kevésbé rugalmas és kevésbé felhasználóbarát, mint a testreszabott hitelesítési űrlapok.

Használat: Főként API-k, statikus erőforrások védelmére, vagy egyszerű belső rendszerek esetén alkalmazzák, ahol a biztonság nem kritikus, vagy mindig SSL/TLS (HTTPS) mellett.