В чем разница между аутентификацией и авторизацией?

«В чем разница между аутентификацией и авторизацией?» — вопрос из категории Тестирование безопасности, который задают на 28% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Простыми словами:

  • Аутентификация: «Кто ты?» (логин/пароль, токен, отпечаток пальца).
  • Авторизация: «Что тебе разрешено делать?» (роли, права, ACL).

С точки зрения тестировщика:

  1. Тестирование аутентификации:
    • Проверка корректности работы с учетными данными (правильный/неправильный пароль, блокировка после N попыток, восстановление доступа).
    • Тестирование альтернативных методов (OAuth, биометрия, одноразовые коды).
    • Проверка на уязвимости (перебор паролей, SQL-инъекция в форму входа).
  2. Тестирование авторизации:
    • Проверка вертикального контроля доступа: Может ли обычный пользователь получить доступ к функциям администратора (например, через прямой URL /admin/panel)?
    • Проверка горизонтального контроля доступа: Может ли пользователь A получить доступ к данным пользователя B (например, изменив ID в запросе GET /orders/123 на GET /orders/456)?
    • Тестирование ролевой модели (RBAC): соответствуют ли права каждой роли заявленным в требованиях.

Пример тест-кейса:

  1. Аутентифицируйтесь как пользователь с ролью USER.
  2. Попробуйте отправить POST-запрос на эндпоинт /api/v1/users/delete, предназначенный только для роли ADMIN.
  3. Ожидаемый результат: Должен вернуться ответ 403 Forbidden (или 401 Unauthorized), а действие не должно быть выполнено. Успешное выполнение — критическая уязвимость.

Видео-ответы