Junior
Какво е базова автентикация (Basic Auth)?
sobes.tech AI
Отговор от AI
Базовата автентикация е най-простият начин за автентикация на HTTP клиент, определен в стандарта RFC 7617.
Принцип на работа:
- Клиентът изпраща HTTP заявка към защитен ресурс.
- Сървърът отговаря със статус
401 Unauthorizedи заглавкаWWW-Authenticate: Basic realm="<realm>", където<realm>е текстово описание на защитената област (ресурс). - Браузърът или клиентското приложение показва диалогов прозорец за въвеждане на потребителско име и парола.
- Клиентът кодира потребителското име и паролата в низ във формат
username:password. - Полученият низ се кодира с Base64.
- Клиентът повтаря заявката, добавяйки заглавката
Authorization: Basic <base64_кодирана_низ>, където<base64_кодирана_низ>е резултатът от Base64 кодиране. - Сървърът декодира Base64 низа, разделя потребителското име и паролата и проверява данните.
- Ако данните са верни, сървърът изпраща искания ресурс. В противен случай, отново връща
401 Unauthorized.
Пример за заглавка Authorization:
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
където YWxhZGRpbjpvcGVuc2VzYW1l е Base64-енкодирана низ на aladdin:opensesame.
Характеристики:
- Простота: Лесна за реализиране както от страна на клиента, така и от страна на сървъра.
- Несигурност: Данните за вход се предават, макар и в Base64, но без криптиране. Base64 е кодиране, не криптиране. При прихващане на трафика данните лесно могат да бъдат декодирани. Само в комбинация с HTTPS осигурява минимално ниво на сигурност.
- Без състояние: Не запазва състояние на сървъра между заявките (stateless). Всяка заявка изисква заглавката
Authorization. - Потребителски опит: Диалоговият прозорец на браузъра е по-малко гъвкав и по-малко приятелски към потребителя в сравнение с персонализирани форми за автентикация.
Използване: Обикновено се използва за защита на API, статични ресурси или в прости вътрешни системи, където сигурността не е критична, или винаги в комбинация с SSL/TLS (HTTPS).