Что такое ролевая модель (role-based access control) в контексте тестирования?

«Что такое ролевая модель (role-based access control) в контексте тестирования?» — вопрос из категории Тестирование безопасности, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Ролевая модель (RBAC — Role-Based Access Control) — это механизм управления доступом, в котором права на выполнение операций в системе назначаются не конкретным пользователям, а их ролям (например, «Администратор», «Пользователь», «Гость»). Тестирование RBAC проверяет корректность работы этой модели.

Что проверяется:

  1. Позитивные сценарии: Пользователь может выполнять действия, разрешенные его роли.
  2. Негативные сценарии: Пользователь не может выполнять действия, запрещенные его роли (проверка на отсутствие несанкционированного доступа).
  3. Эскалация привилегий: Невозможность получить права более высокой роли обходными путями (например, подмена параметров в URL или API-запросе).

Пример теста на Python с использованием pytest:

def test_admin_can_delete_user(admin_client):
    response = admin_client.delete('/api/users/123')
    assert response.status_code == 200  # Админ имеет право

def test_user_cannot_delete_user(user_client):
    response = user_client.delete('/api/users/123')
    assert response.status_code == 403  # Обычный пользователь получает "Запрещено"

Ключевые аспекты для тестировщика:

  • Понимание матрицы прав для каждой роли.
  • Проверка доступа к UI-элементам (кнопки, меню) и API-эндпоинтам.
  • Тестирование сценариев, когда у пользователя несколько ролей одновременно.