Sobes.tech
Junior

Какво е базова автентикация (Basic Auth)?

sobes.tech AI

Отговор от AI

Базовата автентикация е най-простият начин за автентикация на HTTP клиент, определен в стандарта RFC 7617.

Принцип на работа:

  1. Клиентът изпраща HTTP заявка към защитен ресурс.
  2. Сървърът отговаря със статус 401 Unauthorized и заглавка WWW-Authenticate: Basic realm="<realm>", където <realm> е текстово описание на защитената област (ресурс).
  3. Браузърът или клиентското приложение показва диалогов прозорец за въвеждане на потребителско име и парола.
  4. Клиентът кодира потребителското име и паролата в низ във формат username:password.
  5. Полученият низ се кодира с Base64.
  6. Клиентът повтаря заявката, добавяйки заглавката Authorization: Basic <base64_кодирана_низ>, където <base64_кодирана_низ> е резултатът от Base64 кодиране.
  7. Сървърът декодира Base64 низа, разделя потребителското име и паролата и проверява данните.
  8. Ако данните са верни, сървърът изпраща искания ресурс. В противен случай, отново връща 401 Unauthorized.

Пример за заглавка Authorization:

Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

където YWxhZGRpbjpvcGVuc2VzYW1l е Base64-енкодирана низ на aladdin:opensesame.

Характеристики:

  • Простота: Лесна за реализиране както от страна на клиента, така и от страна на сървъра.
  • Несигурност: Данните за вход се предават, макар и в Base64, но без криптиране. Base64 е кодиране, не криптиране. При прихващане на трафика данните лесно могат да бъдат декодирани. Само в комбинация с HTTPS осигурява минимално ниво на сигурност.
  • Без състояние: Не запазва състояние на сървъра между заявките (stateless). Всяка заявка изисква заглавката Authorization.
  • Потребителски опит: Диалоговият прозорец на браузъра е по-малко гъвкав и по-малко приятелски към потребителя в сравнение с персонализирани форми за автентикация.

Използване: Обикновено се използва за защита на API, статични ресурси или в прости вътрешни системи, където сигурността не е критична, или винаги в комбинация с SSL/TLS (HTTPS).