Что такое Basic Auth?

«Что такое Basic Auth?» — вопрос из категории Безопасность, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Basic Auth (Базовая аутентификация) — это простой протокол аутентификации HTTP, при котором учетные данные (логин и пароль) передаются клиентом в заголовке каждого запроса в кодировке Base64.

Как это работает:

  1. Клиент объединяет логин и пароль строкой username:password.
  2. Эта строка кодируется в Base64.
  3. Кодированная строка добавляется в HTTP-заголовок:
    Authorization: Basic dXNlcjpwYXNzd29yZA==

Пример запроса с curl:

curl -H "Authorization: Basic $(echo -n 'api_user:secret' | base64)" https://api.example.com/resource
# Или проще:
curl -u api_user:secret https://api.example.com/resource

Проблемы с безопасностью и использование в DevOps:

  • Уязвимость: Учетные данные передаются в легко декодируемом виде. Обязательно требует использования HTTPS (TLS).
  • Нет отзыва сессий: Пароль действует, пока его не сменить.
  • Применение: Часто используется для защиты внутренних инструментов (например, веб-интерфейса Prometheus, базовых эндпоинтов в CI/CD), где можно быстро настроить аутентификацию через веб-сервер (nginx, Apache). Для публичных API предпочтительны более безопасные методы: OAuth 2.0, JWT-токены или API-ключи.