REST API: Эндпоинты пользователей и управления доступом RBAC
API пользователей позволяет администраторам создавать учетные записи, изменять пароли и настраивать ролевую модель доступа (RBAC).
1. Матрица ролевого доступа (RBAC)
| Права доступа / Подсистема | viewer | operator | admin | service (M2M) |
|---|---|---|---|---|
| Живой просмотр WebRTC / HLS | ✅ | ✅ | ✅ | ✅ |
| Просмотр и экспорт архива | ✅ | ✅ | ✅ | ✅ |
| Управление камерами | ❌ | ✅ | ✅ | ✅ |
| Управление тегами и папками | ❌ | ✅ | ✅ | ✅ |
| Управление пользователями | ❌ | ❌ | ✅ | ❌ |
| Резервное копирование бэкапов | ❌ | ❌ | ✅ | ❌ |
2. Список пользователей (GET /api/users)
- Требуемая роль:
admin
bash
curl -H "Authorization: Bearer <ADMIN_TOKEN>" http://localhost:8080/api/usersОтвет (200 OK):
json
[
{
"username": "admin",
"role": "admin"
},
{
"username": "operator1",
"role": "operator"
},
{
"username": "guard_john",
"role": "viewer"
}
]3. Создание пользователя (POST /api/users)
- Требуемая роль:
admin
bash
curl -X POST http://localhost:8080/api/users \
-H "Authorization: Bearer <ADMIN_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"username": "operator_john",
"password": "StrongPassword987!",
"role": "operator"
}'Ответ (201 Created):
json
{
"username": "operator_john",
"role": "operator"
}4. Обновление пароля или роли (PUT /api/users/:username)
bash
curl -X PUT http://localhost:8080/api/users/operator_john \
-H "Authorization: Bearer <ADMIN_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"password": "NewSecretPassword2026!",
"role": "admin"
}'Ответ (200 OK).
5. Удаление пользователя (DELETE /api/users/:username)
bash
curl -X DELETE http://localhost:8080/api/users/operator_john \
-H "Authorization: Bearer <ADMIN_TOKEN>"Ответ (200 OK): {"message": "user deleted"}.