Sobes.tech
Junior

Co je základní autentifikace (Basic Auth)?

sobes.tech AI

Odpověď od AI

Základní autentizace je nejjednodušší způsob autentizace klienta HTTP, definovaný v normě RFC 7617.

Princip fungování:

  1. Klient odešle HTTP požadavek na chráněný zdroj.
  2. Server odpoví stavem 401 Unauthorized a hlavičkou WWW-Authenticate: Basic realm="<realm>", kde <realm> je textový popis chráněné oblasti (zdroje).
  3. Prohlížeč nebo klientská aplikace zobrazí dialogové okno pro zadání uživatelského jména a hesla.
  4. Klient zakóduje uživatelské jméno a heslo do řetězce ve formátu username:password.
  5. Výsledný řetězec je zakódován pomocí Base64.
  6. Klient opakuje požadavek, přičemž přidá hlavičku Authorization: Basic <base64_kódovaný_řetězec>, kde <base64_kódovaný_řetězec> je výsledek Base64 kódování.
  7. Server dekóduje Base64 řetězec, rozdělí uživatelské jméno a heslo a ověří údaje.
  8. Pokud jsou údaje správné, server odešle požadovaný zdroj. Jinak opět vrátí 401 Unauthorized.

Příklad hlavičky Authorization:

Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

kde YWxhZGRpbjpvcGVuc2VzYW1l je Base64 zakódovaný řetězec aladdin:opensesame.

Vlastnosti:

  • Jednoduchost: Snadná implementace jak na straně klienta, tak na straně serveru.
  • Nezabezpečenost: Přihlašovací údaje jsou přenášeny, i když jsou v Base64, ale nezašifrované. Base64 je kódování, nikoliv šifrování. Při zachycení dat je lze snadno dekódovat. Pouze ve spojení s HTTPS poskytuje minimální úroveň bezpečnosti.
  • Bezstavovost: Neuchovává stav na serveru mezi požadavky (stateless). Každý požadavek vyžaduje hlavičku Authorization.
  • Uživatelský zážitek: Dialogové okno prohlížeče je méně flexibilní a méně uživatelsky přívětivé ve srovnání s vlastním formulářem autentifikace.

Použití: Nejčastěji se používá k ochraně API, statických zdrojů nebo v jednoduchých interních systémech, kde bezpečnost není kritická, nebo vždy ve spojení s SSL/TLS (HTTPS).