Управление пользователями¶
Руководство по созданию, редактированию и управлению пользователями AegisAI.
Список пользователей¶
Параметры фильтрации:
| Параметр | Описание |
|---|---|
role |
Фильтр по роли |
is_active |
true / false |
limit |
Количество записей |
offset |
Смещение |
Изоляция арендаторов
Admin видит только пользователей своего tenant. Super Admin видит всех.
Создание пользователя¶
curl -X POST http://localhost:8000/api/v1/users \
-H "Authorization: Bearer <admin-jwt>" \
-H "Content-Type: application/json" \
-d '{
"email": "analyst@company.com",
"password": "TempPass123!",
"full_name": "Анна Аналитикова",
"role": "security_analyst",
"tenant_id": "<tenant-uuid>"
}'
| Поле | Обязательно | Описание |
|---|---|---|
email |
✅ | Уникальный email |
password |
✅ | Минимум 8 символов |
full_name |
❌ | Отображаемое имя |
role |
✅ | RBAC-роль |
tenant_id |
✅* | UUID арендатора (*не нужен для super_admin) |
Пользователи SSO¶
При включённом SSO пользователи могут создаваться автоматически при первом входе через IdP (JIT). У таких пользователей:
- Заполнены
auth_providerиexternal_subject - Нет локального пароля — сброс пароля не применяется
- Роль назначается из групп IdP (
SSO_ROLE_MAPPING_JSON)
Отключите автосоздание: SSO_AUTO_PROVISION=false. См. SSO.
Редактирование пользователя¶
curl -X PUT http://localhost:8000/api/v1/users/<user_id> \
-H "Authorization: Bearer <admin-jwt>" \
-H "Content-Type: application/json" \
-d '{
"full_name": "Анна Аналитикова",
"is_active": true
}'
Смена роли¶
curl -X PUT http://localhost:8000/api/v1/users/<user_id>/role \
-H "Authorization: Bearer <admin-jwt>" \
-H "Content-Type: application/json" \
-d '{"role": "developer"}'
Ограничения
- Нельзя назначить
super_admin, если вы не super_admin - Нельзя назначить роль выше своей
- Нельзя изменить роль super_admin
Блокировка и разблокировка¶
Заблокированный пользователь (is_active=false):
- Не может войти в систему
- Существующие JWT-сессии отклоняются
- WebSocket-соединения закрываются
Сброс пароля¶
Администратор может сбросить пароль пользователя:
curl -X POST http://localhost:8000/api/v1/users/<user_id>/reset-password \
-H "Authorization: Bearer <admin-jwt>" \
-H "Content-Type: application/json" \
-d '{"new_password": "NewSecurePass456!"}'
Удаление пользователя¶
curl -X DELETE http://localhost:8000/api/v1/users/<user_id> \
-H "Authorization: Bearer <admin-jwt>"
Ограничения удаления
- Super Admin не может быть удалён
- Нельзя удалить самого себя
- API-ключи пользователя отзываются автоматически
API-ключи пользователя¶
Каждый пользователь может иметь несколько API-ключей:
Ключи хранятся в виде bcrypt-хеша. Полный ключ показывается только при создании.
Аудит действий¶
Все операции с пользователями записываются в user_audit_log:
| Действие | Описание |
|---|---|
user.created |
Создание пользователя |
user.updated |
Изменение профиля |
user.role_changed |
Смена роли |
user.blocked |
Блокировка |
user.unblocked |
Разблокировка |
user.password_reset |
Сброс пароля |
user.deleted |
Удаление |
login |
Успешный вход |
logout |
Выход |