Как ответить
Идентификация, аутентификация и авторизация — это три последовательных этапа проверки доступа к системе. Часто их путают, особенно аутентификацию с авторизацией. На практике они решают разные задачи: идентификация отвечает на вопрос «кем себя называет пользователь?», аутентификация — «действительно ли он тот, за кого себя выдаёт?», а авторизация — «что этому пользователю разрешено делать?».
Идентификация — это предъявление идентификатора. Например, пользователь вводит логин, номер карты, email или просто называет себя. Система запоминает, что сейчас работает субъект с таким идентификатором, но ещё не проверяет его подлинность. Без идентификации невозможны следующие шаги.
Аутентификация — это проверка подлинности предъявленного идентификатора. Самый распространённый способ — пароль (что-то, что знает пользователь). Также бывают токены (что-то, что есть у пользователя: TOTP, аппаратный ключ) и биометрия (что-то, что является частью пользователя: отпечаток, лицо). В вебе часто используют сессионные cookie или JWT: после успешной аутентификации сервер выдаёт токен, и каждый последующий запрос содержит этот токен, подтверждающий, что сессия уже пройдена.
Авторизация — это проверка прав доступа после успешной аутентификации. Система смотрит, есть ли у данного пользователя разрешение на выполнение конкретного действия (чтение, запись, удаление) или доступ к ресурсу. Типичные реализации — RBAC (ролевая модель) и ACL (списки контроля доступа). Например, после входа (аутентификации) обычный пользователь может только просматривать статьи, а администратор — редактировать и удалять их. Даже если пользователь аутентифицирован, но не авторизован — при попытке удалить статью он получит 403 Forbidden.
Пример из веб-разработки:
// Клиент отправляет запрос с сессионным cookie
// 1. Сервер определяет идентификатор пользователя из сессии (идентификация)
// 2. Проверяет, что сессия валидна и не истекла (аутентификация)
// 3. Смотрит роль пользователя и проверяет, есть ли право на DELETE /api/articles/42 (авторизация)
// Если не авторизован — возвращает 403, если не аутентифицирован — 401
На собеседовании стоит подчеркнуть, что аутентификация — про подтверждение личности, а авторизация — про разрешения. Ошибки в этом разделении — одна из частых причин уязвимостей (например, неверно настроенная авторизация после аутентификации).