Skip to content

Токены API ​

Токен API позволяет программе работать с API панели: вашему скрипту биллинга, боту, задаче мониторинга. Каждый токен действует от имени одного аккаунта администратора и никогда не выходит за пределы его доступа. Страница находится в Доступ → Токены API и открыта главным администраторам.

Страница токенов API: список токенов с администратором, от имени которого действует каждый, его ролью, областями, последним использованием и срокомСтраница токенов API: список токенов с администратором, от имени которого действует каждый, его ролью, областями, последним использованием и сроком

Как ограничивается токен ​

Токен сужается тремя способами, и каждый проверяется заново при каждом запросе:

  1. От имени: администратор, к которому он привязан. Токен видит то же, что этот администратор. Токен реселлера видит только пользователей этого реселлера и расходует его квоту. При удалении администратора удаляется и токен.
  2. Роль: уровень, на котором работает токен, не выше уровня его администратора. Понижение администратора понижает и токен.
  3. Области: маршруты, доступные токену внутри этой роли, в пересечении с правами роли его администратора. Сужение роли администратора сразу сужает все привязанные к нему токены, и перевыпускать ничего не нужно.

Изменение любого из них вступает в силу при следующем запросе токена.

Создание токена ​

  1. Добавить.
  2. Описание: для чего токен, чтобы потом его узнать.
  3. От имени: администратор, чей доступ получает токен.
  4. Роль: уровень, не выше уровня этого администратора.
  5. Области: оставьте Без ограничений для всех маршрутов, доступных роли (включая области, которые добавит следующий выпуск), или снимите отметку и выберите сами.
  6. Идентификатор аддона: для обычной интеграции оставьте пустым. Поле нужно для токена, который принадлежит дополнению, добавленному вручную (см. Страница дополнений).
  7. Запросов в минуту: 0 означает значение панели по умолчанию, 120.
  8. Срок действия (дней): 0 — бессрочно.
  9. Сохранить.

После этого панель показывает токен один раз. Скопируйте его, прежде чем закрыть окно: хранится только хеш, поэтому показать токен снова нельзя. Потерянный токен удаляют и заменяют новым.

TIP

Если в вашем аккаунте включена двухфакторная аутентификация, создание или удаление токена снова запрашивает код, если последний был введён больше десяти минут назад.

Передавайте токен с каждым запросом:

bash
curl -H "Authorization: Bearer $NEXORA_TOKEN" \
  https://panel.example.com/your-base-path/api/v1/me

/api/v1/me отвечает, от имени какого администратора действует токен и какие области у него есть.

Области ​

Область :write включает соответствующую :read. Форма панели показывает названия из второго столбца; API и справочник API используют первый.

ОбластьКак показана
users:readВидеть пользователей
users:writeСоздавать и изменять пользователей
nodes:readВидеть узлы
nodes:writeНастраивать узлы
tunnels:readВидеть туннели
tunnels:writeНастраивать туннели
nodes:installУстанавливать узлы по SSH
templates:readВидеть шаблоны
templates:writeИзменять шаблоны
pool:readВидеть входящие, исходящие и наборы правил
pool:writeИзменять входящие, исходящие и наборы правил
certificates:readВидеть сертификаты
certificates:writeВыпускать и изменять сертификаты
settings:readВидеть настройки
settings:writeИзменять настройки
stats:readТрафик, отчёты и состояние
tools:writeГенераторы ключей
admins:writeУправлять операторами и ролями
tokens:writeУправлять токенами API
license:writeУправлять лицензией
backup:readСкачивать резервные копии
backup:writeСоздавать и удалять резервные копии
backup:deliverОтправка файлов в чат бэкапов
security:readВидеть список блокировок
security:writeИзменять список блокировок
webhooks:readВидеть подписчиков событий
webhooks:writeИзменять подписчиков событий
services:readВидеть сервисы панели
services:writeНастраивать и проверять сервисы панели

Выдавайте программе минимум необходимого. Три области относятся к администрированию самой панели: admins:write, tokens:write и license:write. Не выдавайте их, если программе они действительно не нужны: токен без них не может создавать аккаунты и выпускать новые токены, поэтому утёкший токен не сможет закрепиться навсегда. backup:read выгружает всю базу со всеми учётными данными, а nodes:install входит на ваши серверы как root, поэтому обе требуют той же осторожности.

Несколько маршрутов закрыты для любого токена, какими бы ни были его области: смена собственного пароля, раскладка панели мониторинга, перезапуск панели, обновление панели и восстановление резервной копии. Несколько маршрутов открыты любому токену: /api/v1/me, список областей и каталог событий.

Ограничение частоты ​

У каждого токена есть бюджет запросов в минуту (120, если не задать другой). Каждый ответ содержит X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset. Запрос сверх бюджета получает 429 с Retry-After; подождите столько секунд перед следующим.

Список ​

Столбец
Описаниес меткой Дополнение: имя, если токен принадлежит дополнению
От имениадминистратор, к которому он привязан
Рольего уровень
ОбластиБез ограничений или число областей (наведите указатель, чтобы увидеть список)
Последнее использованиекогда токен использовался последний раз; наведите указатель, чтобы увидеть адрес
Истекаетдата окончания срока или «никогда»

После создания токен не редактируется: удалите его и создайте другой. Токен, принадлежащий дополнению, здесь удалить нельзя; он меняется или удаляется вместе с дополнением на странице Страница дополнений.

API ​

Справочник API вверху страницы открывает справочник для этой установки с уже подставленными её адресами: каждый маршрут, нужная ему область, списки и постраничный вывод, повторы с Idempotency-Key и коды ответов. Тот же материал есть в Справочник API.

Стройте интеграции на префиксе /api/v1. Это стабильный публичный контракт. Префикс /api без версии принадлежит интерфейсу панели и может меняться вместе с ним.

Текст и изображения — CC BY 4.0.