Skip to content

Аутентификация и пользователи

Клиент 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_token
  • refresh_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}Удалить пользователя.

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

  • username
  • login
  • role_id
  • limit
  • page

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

json
{
  "username": "security",
  "login": "security",
  "password": "securitysecurity",
  "role_id": 2
}

Роли

В интерфейсе и API сейчас используются как минимум роли:

РольНазначение
adminПолный доступ, включая пользователей и логи.
securityРабота с хостами, группами, учётными данными, шаблонами и задачами.
auditПросмотр данных без выполнения изменяющих операций.

Документация NRunner