← Назад к вопросам

Что такое аутентификация?

2.0 Middle🔥 111 комментариев
#Архитектура систем

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI28 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое аутентификация?

Аутентификация — это процесс проверки подлинности пользователя, то есть подтверждение того, что человек является именно тем, за кого он себя выдает. Это первый шаг безопасности системы. На англий языке: Authentication или Auth.

Просто говоря, аутентификация отвечает на вопрос: "Ты кто?"

Аутентификация vs Авторизация

Эти два понятия часто путают:

Аутентификация (Authentication) = Идентификация

  • Процесс: Проверка личности пользователя
  • Вопрос: Ты кто?
  • Пример: Вход по логину и пароль — это аутентификация
  • Результат: Система знает, кто вы

Авторизация (Authorization) = Разрешение

  • Процесс: Проверка прав доступа
  • Вопрос: Что ты можешь делать?
  • Пример: Администратор может удалять пользователей, обычный пользователь нет
  • Результат: Система знает, что вы можете делать

Аналогия: Паспортный контроль на границе — это аутентификация (проверяют документ). Виза в паспорте — это авторизация (определяет, куда вам можно ехать).

Методы аутентификации

1. Пароль (Password-based)

Пользователь вводит логин и пароль → система проверяет в БД → доступ разрешен

Плюсы: Простой, знаком всем Минусы: Уязвим для перебора (brute-force), утечек данных

2. Двухфакторная аутентификация (2FA)

Примеры:

  • SMS-код
  • Authenticator приложение (Google Authenticator, Authy)
  • Отпечаток пальца / Face ID
  • Email подтверждение

Плюсы: Намного безопаснее Минусы: Сложнее для пользователя

3. OAuth 2.0 (Федеративная аутентификация)

"Вход через Google/Facebook/GitHub"

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

  1. Пользователь кликает "Вход через Google"
  2. Перенаправляется на Google для ввода пароля
  3. Google подтверждает личность
  4. Возвращает токен обратно в приложение
  5. Приложение создает сессию

Плюсы: Пользователю не нужно создавать новый пароль, безопаснее Минусы: Зависимость от внешних сервисов

4. OpenID Connect (OIDC)

Расширение OAuth 2.0 для аутентификации (не только авторизации)

5. SAML (Security Assertion Markup Language)

Часто используется в корпоративных системах и для SSO (Single Sign-On)

6. Биометрическая аутентификация

  • Отпечаток пальца
  • Лицо (Face Recognition)
  • Голос

Плюсы: Уникально и безопасно Минусы: Требует специального оборудования

7. Сертификаты (Certificate-based)

Используются в системах высокой безопасности

Как аутентификация работает в web-приложениях?

Традиционный подход (Sessions)

1. Пользователь вводит логин/пароль
2. Сервер проверяет в БД
3. Создает сессию (Session ID) и хранит на сервере
4. Возвращает cookie браузеру
5. Браузер отправляет cookie при каждом запросе
6. Сервер проверяет сессию

Современный подход (JWT токены)

1. Пользователь вводит логин/пароль
2. Сервер создает JWT токен (содержит информацию о пользователе)
3. Токен отправляется клиенту
4. Клиент сохраняет в localStorage/sessionStorage
5. При каждом запросе отправляет токен в заголовке Authorization
6. Сервер проверяет подпись токена

Преимущества JWT:

  • Масштабируемость (не нужно хранить сессии)
  • Подходит для микросервисов
  • Работает с мобильными приложениями

Лучшие практики аутентификации

Безопасность

  • ✅ Всегда использовать HTTPS
  • ✅ Хранить пароли в виде хешей (bcrypt, Argon2)
  • ✅ Реализовать 2FA
  • ✅ Ограничить попытки входа (rate limiting)
  • ✅ Логировать попытки входа
  • ❌ Никогда не хранить пароли в открытом виде
  • ❌ Никогда не передавать пароли по HTTP

Пользовательский опыт

  • Забыл пароль → восстановление через email
  • "Оставить меня в системе" (Remember me) — но безопасно
  • Социальный вход (OAuth) для удобства

Реальные примеры

Пример 1: GitHub

  • Email + пароль или 2FA
  • OAuth (вход через GitHub на других сайтах)
  • SSH-ключи для разработчиков

Пример 2: Банк

  • Логин + пароль
  • SMS/Push код
  • Иногда биометрия
  • Сертификаты для ключевых операций

Пример 3: Google

  • Пароль + 2FA (SMS, Authenticator)
  • Recovery codes на случай потери доступа
  • Проверка необычной активности

Что BA должен знать о аутентификации?

  1. Требования: Какие методы нужны для целевой аудитории?
  2. UX: Как сделать аутентификацию удобной, но безопасной?
  3. Интеграции: Нужна ли интеграция с корпоративной системой (SAML)?
  4. GDPR/Compliance: Какие требования по хранению личных данных?
  5. Масштабируемость: JWT или Sessions?
  6. Recovery: Что если пользователь потерял доступ?

Аутентификация — это не просто функция, это основа безопасности и доверия пользователей к системе.

Что такое аутентификация? | PrepBro