Руководство администратора
Обновлено: 07 Декабрь 2025
Версия: 2.2
Требования для работы API
Для работы API необходимо:
- Установленные зависимости -- все необходимые библиотеки должны быть установлены (устанавливаются автоматически при развертывании)
- Настроенная база данных -- должна быть создана и настроена база данных PostgreSQL
- Настроенный кэш -- должен быть настроен Redis для кэширования
- Примененные миграции -- все миграции базы данных должны быть применены
- Созданные пользователи -- в системе должны быть созданы пользователи, для которых будут создаваться токены
Создание токенов API
Токены API создаются и управляются только администраторами системы (пользователями с правами суперпользователя) через административную панель Django.
Создание нового токена
- Войдите в административную панель системы
- Перейдите в раздел "API Tokens" (API Токены)
- Нажмите кнопку "Add API Token" (Добавить API токен)
- Заполните форму:
- Name (Название) -- понятное название токена, например "Токен для интеграции с 1С"
- User (Пользователь) -- выберите пользователя, от имени которого будут выполняться запросы
- Expires at (Истекает) -- опционально, укажите дату истечения токена
- Is active (Активен) -- установите галочку, чтобы токен был активен
- Model Permissions (Права на модели) — выберите HTTP методы для каждой модели через удобный интерфейс с таблицей
- Нажмите "Save" (Сохранить)
- Важно! После сохранения система покажет сгенерированный токен. Обязательно скопируйте его и сохраните в безопасном месте -- токен больше не будет показан!
Интерфейс выбора прав доступа
В форме создания токена доступен удобный интерфейс для настройки прав доступа:
- Таблица моделей и методов — отображается таблица со всеми моделями, доступными в API
- Чекбоксы для методов — для каждой модели можно выбрать разрешенные HTTP методы:
GET— просмотр данныхPOST— создание новых записейPUT— полное обновление записиPATCH— частичное обновление записиDELETE— удаление записей- Автоматическое заполнение — при выборе методов для модели, она автоматически добавляется в список разрешенных моделей (
allowed_models) - Группировка по приложениям — модели сгруппированы по приложениям системы для удобства навигации
Как работает выбор прав
- В таблице "Model Permissions" отображаются все модели, которые доступны в API
- Для каждой модели можно выбрать один или несколько HTTP методов, установив соответствующие галочки
- Если для модели выбраны методы, она автоматически добавляется в список разрешенных моделей
- Если для модели не выбраны методы, но она есть в списке разрешенных моделей, разрешаются все методы
- Если для модели не выбраны методы и её нет в списке разрешенных, доступ к этой модели запрещен
Настройка прав доступа для токена
Выбор доступных моделей и методов
В форме создания токена доступна таблица "Model Permissions", которая позволяет визуально выбрать права доступа для каждой модели:
- Таблица моделей — показывает все модели, доступные в API, сгруппированные по приложениям
- Чекбоксы методов — для каждой модели можно выбрать разрешенные HTTP методы через удобный интерфейс
- Автоматическое управление — при выборе методов для модели, она автоматически добавляется в список разрешенных моделей
Формат хранения прав
Права хранятся в формате JSON в поле model_permissions:
{
"tasks.task": ["GET", "POST"],
"servicedesk.request": ["GET"],
"crm.deal": ["GET", "POST", "PUT", "PATCH"]
}
Где:
- Ключ -- это название модели в формате
приложение.модель - Значение -- массив разрешенных методов:
GET,POST,PUT,PATCH,DELETE
Если для модели не указаны права в этом поле, но модель выбрана в "Allowed Models", то разрешаются все методы.
Примеры:
- Только чтение для всех разделов:
json
{
"tasks.task": ["GET"],
"servicedesk.request": ["GET"],
"crm.deal": ["GET"]
}
- Полный доступ к задачам, только чтение к заявкам:
json
{
"tasks.task": ["GET", "POST", "PUT", "PATCH", "DELETE"],
"servicedesk.request": ["GET"]
}
- Если не указать права для модели, разрешаются все методы:
json
{}
(при условии, что модель выбрана в "Allowed Models")
Управление существующими токенами
Просмотр токенов
В списке токенов отображается:
- Название токена
- Пользователь, к которому привязан токен
- Статус активности
- Дата создания
- Дата истечения
- Дата последнего использования
Редактирование токена
Можно изменить:
- Название
- Пользователя
- Дату истечения
- Статус активности
- Разрешенные модели
- Права на методы
Важно: Сам токен изменить нельзя. Если токен был скомпрометирован, нужно создать новый токен и удалить старый.
Деактивация токена
Чтобы временно отключить токен без его удаления:
- Откройте токен для редактирования
- Снимите галочку "Is active"
- Сохраните
Деактивированный токен не будет работать, но его можно снова активировать позже.
Удаление токена
Для полного удаления токена:
- Выберите токен в списке
- Нажмите "Delete" (Удалить)
- Подтвердите удаление
Внимание: Удаление токена необратимо. Все приложения, использующие этот токен, перестанут работать.
Мониторинг использования токенов
В списке токенов отображается дата последнего использования. Это позволяет:
- Определить, какие токены активно используются
- Найти неиспользуемые токены для удаления
- Выявить подозрительную активность
Настройка ограничений частоты запросов
Ограничения частоты запросов настраиваются в файле настроек системы (config/settings.py). По умолчанию:
- Аутентифицированные пользователи: 1000 запросов в час
- Неаутентифицированные пользователи: 100 запросов в час
Для изменения этих значений обратитесь к разработчикам системы.
Безопасность
Рекомендации по безопасности
- Храните токены в безопасности -- токены должны храниться в защищенном месте, не передавайте их по незащищенным каналам связи
- Используйте минимальные права -- создавайте токены с минимально необходимыми правами доступа
- Устанавливайте срок действия -- для временных интеграций устанавливайте дату истечения токена
- Регулярно проверяйте токены -- периодически проверяйте список токенов и удаляйте неиспользуемые
- Мониторьте использование -- следите за датами последнего использования токенов
- Используйте HTTPS -- все запросы к API должны выполняться по защищенному протоколу HTTPS
- Ротация токенов -- периодически создавайте новые токены и удаляйте старые
Что делать при компрометации токена
Если токен был скомпрометирован (попал в чужие руки):
- Немедленно деактивируйте токен в административной панели
- Создайте новый токен с теми же правами
- Обновите токен во всех приложениях, которые его используют
- Удалите старый токен после обновления всех приложений
Резервное копирование
Токены API хранятся в базе данных и включаются в стандартное резервное копирование базы данных. Однако сами токены не нужно резервировать отдельно -- при необходимости их можно пересоздать.
Логирование и аудит
Все операции через API логируются в стандартный журнал аудита системы. В журнале фиксируется:
- Кто выполнил операцию (пользователь, связанный с токеном)
- Какая операция была выполнена
- Когда была выполнена операция
- Какие данные были изменены
Журнал аудита доступен администраторам системы через административную панель.