PythonSecurityBackendDjango

Реализация аналитики только для платных пользователей в платформе Django SaaS

·MAGMA

Реализация аутентификации и контроля доступа

Сегодня я реализовал систему управления доступом на основе ролей для аналитических данных в своей платформе защиты от фишинга на базе искусственного интеллекта. Целью было предоставить доступ к расширенной статистике использования только пользователям с тарифами PRO или Enterprise.

Аутентификация через API-ключи

Вместо стандартной системы токеновой аутентификации Django Rest Framework была создана кастомная система аутентификации:

class APIKeyAuthentication(BaseAuthentication):
    # Логика чтения ключа из заголовка запроса и привязка его к запросу

Ключевое правило при реализации аутентификации заключается в том, что она должна быть свободна от побочных эффектов, то есть не обновлять базу данных внутри метода authenticate().

Проверка разрешений

Для обеспечения безопасности был создан класс проверки прав доступа:

class ProPlanOnly(BasePermission):
    def has_permission(self, request, view):
        api_key = getattr(request, "api_key", None)
        if not api_key or not api_key.is_active():
            return False
        plan = api_key.plan
        return plan in ["pro", "enterprise"]

Эта проверка четко разделяет задачи аутентификации («Кто вы?») и авторизации («Разрешено ли вам здесь находиться?»).

Система отслеживания использования

Теперь каждый запрос регистрируется со следующими данными:

  • конечная точка;
  • метод HTTP-запроса;
  • статус-код ответа;
  • временная метка;
  • ссылка на используемый API-key. Это позволяет собирать важные метрики для дальнейшего анализа поведения пользователей платформы.

Архитектура уровней доступа

Платформа теперь поддерживает три уровня доступа:

  • Анонимный – ограниченный базовый доступ;
  • Бесплатный – возможность проведения анализа с трекингом запросов;
  • PRO – полный анализ плюс доступ к аналитике.

Таким образом проект постепенно превращается из демонстрационного решения в полноценную коммерческую платформу кибербезопасности.

← Вернуться к блогу
Аналитика только для PRO в Django SaaS — MAGMA