Аутентификация и пользователи
Клиент NRunner работает с API относительно выбранного сервера и добавляет базу /api/v1. В серверной документации аутентификация описана через bearer token.
Аутентификация
| Метод | Путь | Назначение |
|---|---|---|
POST | /auth/login | Получить access_token и refresh_token. |
POST | /auth/refresh | Обновить пару токенов по refresh_token. |
POST | /auth/logout | Завершить сессию и отозвать refresh token. |
Логин
В серверной документации логин выполняется не по username, а по полю login:
json
{
"login": "admin",
"password": "adminadmin"
}После успешного входа клиент сохраняет:
access_tokenrefresh_token
Refresh
json
{
"refresh_token": "{{refresh_token}}"
}Logout
json
{
"refresh_token": "{{refresh_token}}"
}Первичная инициализация администратора
| Метод | Путь | Назначение |
|---|---|---|
GET | /admin/exists | Проверить, создан ли первый администратор. |
POST | /admin | Создать первого администратора. |
Пример тела для POST /admin:
json
{
"username": "admin",
"login": "admin",
"password": "adminadmin",
"role_id": 1
}Текущий пользователь и управление пользователями
| Метод | Путь | Назначение |
|---|---|---|
GET | /users/me | Получить текущего пользователя и его роль. |
GET | /users | Получить список пользователей с фильтрами. |
POST | /users | Создать пользователя. |
GET | /users/{id} | Получить пользователя по идентификатору. |
PUT | /users/{id} | Обновить пользователя. |
DELETE | /users/{id} | Удалить пользователя. |
Поддерживаемые фильтры в серверной документации для списка пользователей:
usernameloginrole_idlimitpage
Пример создания пользователя:
json
{
"username": "security",
"login": "security",
"password": "securitysecurity",
"role_id": 2
}Роли
В интерфейсе и API сейчас используются как минимум роли:
| Роль | Назначение |
|---|---|
admin | Полный доступ, включая пользователей и логи. |
security | Работа с хостами, группами, учётными данными, шаблонами и задачами. |
audit | Просмотр данных без выполнения изменяющих операций. |