Спецификация WebApi на прием событий Оркестратора

Требуется реализовать WebApi с двумя end-point – для авторизации (не обязательный, если не требуется авторизация) и для приема событий. Все данные в формате JSON (заголовок Content-Type = application/json).

End-point авторизации

Авторизация по токену (JWT token). Адрес этого end-point задается в настройках сервиса LogEventsWebhook как HttpEndPoint:LoginUrl.

POST: LoginUrl

Данные передаются в теле запроса как объект:

{
     "UserName": "userName",
     "Password": "password"
}

Логин и пароль также задаются в настройках сервиса LogEventsWebhook в секции HttpEndPoint. Возвращается токен в теле ответа в виде объекта:

{
     "Token": "eyJhbGciOiJI…"
}

End-point приема событий

Адрес этого end-point задается в настройках сервиса LogEventsWebhook как HttpEndPoint:Url

POST: Url

Данные передаются в теле запроса как объект события (см. таблицу 1):

{
     "Id": "955f8b51-00a4-4807-b723-a3e5c547da01",
     "Event": 101,
     ...
}

Токен передается в заголовке Authorization = Bearer \<token\>

Если end-point приема событий не допускает неавторизованный запрос, должен возвращаться http-статус 401 Unauthorized. Если end-point приема событий допускает неавторизованный запрос, HttpEndPoint:LoginUrl можно оставить пустым или null.

Таблица 1 – Описание свойств объекта события

Знак «?» в столбце Тип означает, что значение этого типа может быть null.

Свойство
Тип
Описание

Id

Guid

Идентификатор события

Event

Enum?

EntityId

string

Идентификатор сущности, связанной с событием

UserId

string

Идентификатор пользователя, связанного с событием

OrchTimestampUtc

DateTime

Время события по времени оркестратора в UTC

OperationKey

Guid?

Идентификатор бизнес-операции

Signature

string

Подпись события

WorkerAdminName

string

Имя администратора машины робота

Text

string

Произвольное описание, связанное с событием

EventType

Enum?

Классификация события. См. поле Код в Таблице 2 (ниже)

IP

string

IP-адрес, связанный с событием

TenantId

string

Идентификатор тенанта, в котором произошло событие

EntityData

string

Расширенная информация о сущности, связанной с событием. См. свойство EntityId

SendedAt

DateTime

Дата отправки события в интеграционный end-point

Знак «?» в колонке Тип означает, что может быть null.

Таблица 2 – Классификация событий Оркестратора

В следующих версиях Оркестратора могут добавиться новые события

Код
Наименование
Описание

1

Info

Информационное

2

Error

Ошибка

3

SecurityIncident

Инцидент безопасности

4

Correction

Корректировка

ВНИМАНИЕ! Для ознакомления с перечнем событий Оркестратора см. Приложение 3 - События Оркестратора.

End-point приема событий для интеграции с ArcSight

В качестве примера интеграционного end-point в поставку включена служба Primo.Orchestrator.ArcSight*. Служба конвертирует события в формат ArcSight и сохраняет их в файлах в папке обмена.

Служба Primo.Orchestrator.ArcSight не фильтрует события, в файлах обмена сохраняются все принятые события Оркестратора.

События записываются в файл по мере достижения максимального количества строк (настраивается в конфигурационном файле службы Primo.Orchestrator.ArcSight). Потом события записываются в следующий файл и так далее.

При достижении максимального количества файлов в папке обмена старые файлы удаляются.

Механизм загрузки событий в ArcSight должен быть согласован с настройками Primo.Orchestrator.ArcSight, чтобы успеть загрузить события в ArcSight до их удаления.

В качестве end-point авторизации при настройке LogEventsWebhook необходимо использовать адрес Оркестратора: https://{IP}:44392/api/Account.

В качестве end-point приема событий при настройке LogEventsWebhook необходимо использовать адрес Primo.Orchestrator.ArcSight: https://{IP}:44444/api/OrchEvents.

Ниже приведен пример содержимого файла ArcSight-2022052220.txt из папки обмена:

May 22 15:33:32 host CEF:0|Primo|Orchestrator.ArcSight|1.0.0.0|2001|Login|10|entityid='agent, tenantId=' entitydata='' ip=::ffff:192.168.1.159 operationkey= userid= workeradminname= id=ca73d6b2-5286-44fd-8ada-ff5c155d96c6
May 22 15:33:43 host CEF:0|Primo|Orchestrator.ArcSight|1.0.0.0|504|RobotStartStarted|10|entityid='87' entitydata='' ip=::ffff:192.168.1.159 operationkey=8a8224e3-43eb-4611-bbe0-4a7eedffa88a userid=admin workeradminname= id=26143b8f-a5bd-438b-9d7c-cc04753879f1
May 22 15:33:43 host CEF:0|Primo|Orchestrator.ArcSight|1.0.0.0|40006|AgentEnabledKeepRDPSession|10|entityid='87' entitydata='' ip= operationkey=8a8224e3-43eb-4611-bbe0-4a7eedffa88a userid= workeradminname= id=0da49a5d-b333-4b6c-89e7-980ae7c461fa
May 22 15:33:46 host CEF:0|Primo|Orchestrator.ArcSight|1.0.0.0|40006|AgentEnabledKeepRDPSession|10|entityid='87' entitydata='' ip= operationkey=8a8224e3-43eb-4611-bbe0-4a7eedffa88a userid= workeradminname= id=2046ab20-3529-4f21-98cd-b9a88e0f05e0
May 22 15:33:49 host CEF:0|Primo|Orchestrator.ArcSight|1.0.0.0|8001|AgentStartRobotTrackingStart|10|entityid='87' entitydata='' ip= operationkey=8a8224e3-43eb-4611-bbe0-4a7eedffa88a userid= workeradminname= id=c4f0715e-7b3f-4d43-a21a-49583c58dbe6
May 22 15:33:49 host CEF:0|Primo|Orchestrator.ArcSight|1.0.0.0|415|ProjectDownloaded|10|entityid='1' entitydata='' ip=::ffff:192.168.1.159 operationkey=8a8224e3-43eb-4611-bbe0-4a7eedffa88a userid=agent workeradminname= id=4721b6ec-165c-4fb7-9cd2-9d308f6c4069
May 22 15:33:49 host CEF:0|Primo|Orchestrator.ArcSight|1.0.0.0|8010|AgentStartRobotTrackingDownloadProjectArch|10|entityid='87' entitydata='' ip= operationkey=8a8224e3-43eb-4611-bbe0-4a7eedffa88a userid= workeradminname= id=22634d3e-ecc9-4e55-9e26-0f48fb67bbf3
May 22 15:33:49 host CEF:0|Primo|Orchestrator.ArcSight|1.0.0.0|8011|AgentStartRobotTrackingSaveProjectArch|10|entityid='87' entitydata='' ip= operationkey=8a8224e3-43eb-4611-bbe0-4a7eedffa88a userid= workeradminname= id=897fad92-c9e9-4a44-b8f5-5ff10fddfb75
May 22 15:33:50 host CEF:0|Primo|Orchestrator.ArcSight|1.0.0.0|8021|AgentStartRobotTrackingGenerateRunScript|10|entityid='87' entitydata='' ip= operationkey=8a8224e3-43eb-4611-bbe0-4a7eedffa88a userid= workeradminname= id=ab7f0532-faff-444d-a801-46dc69c622e9
May 22 15:33:51 host CEF:0|Primo|Orchestrator.ArcSight|1.0.0.0|8022|AgentStartRobotTrackingCreateTaskToStartRobot|10|entityid='87' entitydata='' ip= operationkey=8a8224e3-43eb-4611-bbe0-4a7eedffa88a userid= workeradminname= id=a798956b-abc7-43bc-a710-a0815cb4377b
May 22 15:33:53 host CEF:0|Primo|Orchestrator.ArcSight|1.0.0.0|8040|AgentStartRobotWaitExecuteWorkflow|10|entityid='87' entitydata='' ip= operationkey=8a8224e3-43eb-4611-bbe0-4a7eedffa88a userid= workeradminname= id=478b2ebd-32bb-420e-9923-f5679b73136c

*Требования к сервису могут быть уточнены по результатам тестирования Заказчиком работы интеграции.\

Инструкции по установке ArcSight:

Last updated

Was this helpful?