Gymterview
junior

Что такое авторизация и аутентификация? Чем они отличаются?

Аутентификация — это проверка личности пользователя (кто вы?). Авторизация — это проверка прав доступа (что вам разрешено делать?).

Аналогия из жизни: аутентификация — это когда охранник на входе в здание проверяет ваш пропуск и убеждается, что вы — тот, за кого себя выдаёте. Авторизация — это когда система доступа определяет, на какие этажи вам разрешён проход.

Характеристика Аутентификация (Authentication) Авторизация (Authorization)
Вопрос Кто вы? Что вам можно?
Порядок Первая (до авторизации) Вторая (после аутентификации)
Данные Логин/пароль, токен, биометрия Роли, права, permissions
Результат Подтверждение или отказ в личности Разрешение или запрет действия
HTTP-код отказа 401 Unauthorized 403 Forbidden

Виды аутентификации

  • По паролю — логин + пароль (Basic Auth, форма логина)
  • По токену — JWT, OAuth2 Access Token
  • Многофакторная (MFA) — пароль + SMS-код / TOTP
  • По сертификату — TLS client certificate
  • Биометрическая — отпечаток пальца, распознавание лица

Эти два процесса неразрывно связаны: без аутентификации невозможна авторизация (нельзя проверить права, не зная, кто обращается), а аутентификация без авторизации бессмысленна (нет смысла знать, кто пользователь, если не управлять доступом). В Spring Security аутентификация реализуется через AuthenticationManager, а авторизация — через AccessDecisionManager и аннотации @PreAuthorize, @Secured.

На собеседовании: ключевая разница — аутентификация отвечает на вопрос «кто?», авторизация — на вопрос «что можно?». Запомните HTTP-коды: 401 (не аутентифицирован) vs 403 (не авторизован). Частая ошибка — путать эти понятия или использовать как синонимы.