Сервисные аккаунты

Сервисные аккаунты в Tracer предоставляют возможность выполнять операции от имени системы.

Чтобы включить фичу в вашей организации, обратитесь в чат поддержки.


Создание сервисного аккаунта (UI)

1 – Перейдите в раздел Пользователи

Если вы хотите создать сервисный аккаунт с доступом к конкретному проекту – перейдите в раздел Проект, если ко всей Организации – в раздел Организация

2 – Нажмите «Создать сервисный аккаунт»

3 – Введите имя аккаунта и укажите роль

4 – Нажмите «Создать»

Сервисный аккаунт появится в списке пользователей вашего проекта или организации:


Авторизация сервисного аккаунта

Для авторизации сервисного аккаунта в сессии необходимо 2 токена:

ТокенОписание
refreshTokenИспользуется для генерации/обновления сервисного токена для авторизации сервисного аккаунта в сессии.
serviceRefreshTokenСервисный токен для авторизации аккаунта в сессии. Может протухнуть.

Генерация refreshToken

Сгенерировать refreshToken можно в разделе Пользователи:

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

Генерация serviceRefreshToken

Для генерации токена служит метод: https://web-api.apptracer.ru/api/auth/issueServiceToken

В параметрах запроса необходимо передать refreshToken в качестве «X-Service-Refresh-Token-Header»:

fetch("https://web-api.apptracer.ru/api/auth/issueServiceToken", { "headers": { "content-type": "application/json;charset=utf-8", "v": "2", "x-service-refresh-token-header": "your token", }, "body": "{}", "method": "POST" });

В заголовках ответа вернётся «X-Refresh-Token-Header» – это и есть постоянный токен авторизации сервисного аккаунта в текущей сессии. Авторизационный токен можно подставлять в tkn в параметры запросов до тех пор, пока он не потухнет – после этого токен нужно сгенерировать заново.

// Например, для: fetch("https://web-api.apptracer.ru/api/user/get", { "headers": { ... "tkn": "токен из X-Refresh-Token-Header" }, ... }); // Получим: {"id":12345,"name":"serviceuser","userType":"SERVICE"}

API

/api/manage/createServiceUser

Пользовательский метод для создания сервисного аккаунта.

ПараметрТипОбязательныйОписание
appIdLongДа, если не указан orgIdid проекта. При указании этого параметра сервисный аккаунт будет создан для проекта.
orgIdLongДа, если не указан appIdid организации. Если указать только его, сервисный аккаунт будет создан для организации.
nameStringДаИмя сервисного аккаунта
roleStringДаРоль сервисного аккаунта

Возвращает:

ПараметрТипОписание
userIdlongid сервисного аккаунта

/api/auth/issueRefreshToken

Метод генерирует refreshToken для сервисного аккаунта.

ПараметрТипОбязательныйОписание
userIdlongДаid сервисного аккаунта

Возвращает:

ПараметрТипОписание
successbooleanСтатус запроса
refreshTokenStringПостоянный токен для генерации токена авторизации в сессии

/api/auth/issueServiceToken

Метод генерирует serviceRefreshToken – авторизационный токен для сервисного аккаунта.

ПараметрТипОбязательныйОписание
x-service-refresh-token-header StringДаrefreshToken сервисного аккаунта

Возвращает в ответе:

ПараметрТипОписание
successbooleanСтатус запроса
refreshTokenStringПостоянный токен для генерации токена авторизации в сессии

Возвращает в header:

ПараметрОписание
x-refresh-token-headerАвторизационный токен сессии для сервисного аккаунта