Назад к вопросам
Junior
79
questionbank
Что такое базовая аутентификация (Basic Auth)?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Базовая аутентификация - это простейший способ аутентификации клиента HTTP, определённый в стандарте RFC 7617.
Принцип работы:
- Клиент отправляет HTTP-запрос к защищённому ресурсу.
- Сервер возвращает ответ со статусом
401 Unauthorizedи заголовкомWWW-Authenticate: Basic realm="<realm>", где<realm>- это текстовое описание защищаемой области (ресурса). - Браузер или клиентское приложение отображает диалоговое окно для ввода имени пользователя и пароля.
- Клиент кодирует имя пользователя и пароль в строку формата
username:password. - Полученная строка кодируется с помощью Base64.
- Клиент повторяет запрос, добавляя заголовок
Authorization: Basic <base64_encoded_string>, где<base64_encoded_string>- результат кодирования Base64. - Сервер декодирует строку Base64, разделяет имя пользователя и пароль и проверяет учётные данные.
- Если учётные данные верны, сервер отправляет запрошенный ресурс. Иначе, снова возвращает
401 Unauthorized.
Пример заголовка Authorization:
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
где YWxhZGRpbjpvcGVuc2VzYW1l — это Base64-кодированная строка aladdin:opensesame.
Особенности:
- Простота: Легко реализовать как на стороне клиента, так и на стороне сервера.
- Небезопасность: Учётные данные передаются, пусть и в Base64-кодированном виде, но не шифрованно. Base64 - это кодирование, а не шифрование. При перехвате трафика данные легко декодируются. Только в связке с HTTPS она обеспечивает минимальный уровень безопасности.
- Состояние: Не сохраняет состояние на сервере между запросами (без stateless). Каждому запросу требуется заголовок
Authorization. - Пользовательский опыт: Браузерное диалоговое окно менее гибкое и пользовательско-дружелюбное по сравнению с кастомными формами аутентификации.
Использование: Чаще всего применяется для защиты API, статических ресурсов или в простых внутренних системах, где безопасность не является критически важной, или обязательно в сочетании с SSL/TLS (HTTPS).