Вызов подключения LiveConnect к компьютеру через ссылку

Старый стиль вызова через HTTP URL

Описание

Старый стиль подключения через LiveConnect был до 9-й версии Kaseya. Он работает и в новых версиях Kaseya, но уже не является основным. Пока он поддерживается и даже есть переключатель в глобальных настройках чтобы включить этот стиль подключения к управлению компьютером по умолчанию.

Само подключение выполняется в новом окне или вкладке текущего браузера.

Строка вызова

Строка вызова подключения отформатирована следующим образом:

https://{SERVERADDRESS}/KLC/LiveConnect.aspx?agentguid={GUID}

где:

{SERVERADDRESS} - IP адрес или доменное имя сервера Kaseya
{GUID} - GUID машины в системе Kaseya

Нюансы, на которые нужно обратить внимание

  1. Вызов URL происходит из текущего браузера по умолчанию и, например, если вызвать так: “start https:/…..” то откроется браузер по умолчанию. Так как старый LiveConnect не поддерживается браузерами Chrome и Яндекс, то вызов URL по умолчанию не отработает и мы не получим результат. Рекомендуется выполнять вызов URL с передаваемым браузером, которые поддерживает старый LiveConnect. Например Internet Explorer. Вызвать его не сложно:
    start iexplore https:/………
  2. Вызов будет неудачным, если перед вызовом не будет активной сессии работы с сервером Kaseya. Перед вызовом необходимо обязательно войти в систему и оставить открытую сессию в браузере, который используется при вызове URL

Новый вызов через LiveConnect 9.x

Введение

Начиная с версии 9.0 в Kaseya внедрен свой браузер для работы с LiveConnect и Remote Control. Этот браузер вызывается через строку как модифицированный URL: kaseyaliveconnect://

Работать это будет в тех системах, где установлен Live Connect версии 9.2 и выше и соответствующей версии Kaseya сервера.

Вызов и формирование строки соединения

Прежде чем начать вызывать Live Connect, подготовим JSON файл. В нем следующая структура:

{ 
    "homePageUrl": "https://my-vsa-host/liveconnect/",
    "payload": {
        "auth": {
            "Token": "123456789"
        },
        "agentId": "123456789012345",
        "navId": "files" 
    }
}

Где поля имеют следующее значение:

  • homePageUrl – это адрес Kaseya VSA сервера с добавленным путем /liveconnect/
  • payload – блок аутентификации и передаваемой информации, на основании которого создается подключение
  • auth – блок, который содержит детали аутентификации. В настоящее время это ключ, который получается при аутентификации через REST API. Необходимо быть внимательным, что название Token должно быть с большой буквы. Если сессия REST API активна, то подключение будет выполнено.
  • agentId – Это GUID агента, к которому необходимо выполнить подключение.
  • navId – Данный ключ необходим для выбора функции LiveConnect к которой сразу необходимо выполнить подключение.Если поле не заполнено, то будет открыт начальный DashBoard (Asset Summary). В настоящее время доступны следующие ключи:
    • assetinfo
    • chat
    • commandshell
    • documents
    • events
    • files
    • logviewer
    • patchstatus
    • procedures
    • processes
    • registryeditor
    • remotecontrol
    • services
    • software
    • terminal
    • ticketing
    • users

Пример формирования ссылки подключения на языке PHP

Формируем строку соединения в виде JSON и записываем в переменную $connectstring, где $obj->{‘Result’}->{‘Token’} это значение полученное из REST API запроса аутентификации (описание подключения). Выбираем navid как функцию обмена файлами, agentId – используем GUID компьютера в Kaseya:

$connectstring='{“homePageUrl”: “https://kaseya.acomps.ru/liveconnect/”,”payload”:{“auth”:{“Token”:”‘ . $obj->{‘Result’}->{‘Token’} . ‘”},”agentId”:”422798656810383″,”navId”: “files”}}’;

Кодируем строку Base64

$connectstringb64=base64_encode($connectstring);

Формируем ссылку вызова:

echo “<a href=\”kaseyaliveconnect://$connectstringb64\”>Connect to Mariia</a>”;

Полный текст программы на PHP, формирующей ссылку подключения на LiveConnect

<html>
<?php
$url="https://kaseya.acomps.ru/api/v1.0/auth";
$username="nautical";
?>
<center>
 <form method="post">
 <input type="password" name="password" size="35">
 <input type="submit" value="Введите пароль" value="<?= htmlspecialchars($_REQUEST['ip']); ?>">
 </form>
</center>
<?php
if(!empty($_POST['password'])) 
{
    $password=$_POST['password'];
    $Random = rand(0,2147483646); 
    $RawSHA256Hash = hash('sha256', $password);
    $CoveredSHA256HashTemp = hash('sha256',$password.$username);
    $CoveredSHA256Hash = hash('sha256',$CoveredSHA256HashTemp.$Random);
    $RawSHA1Hash = sha1($password);
    $CoveredSHA1HashTemp = sha1($password.$username);
    $CoveredSHA1Hash = sha1($CoveredSHA1HashTemp.$Random);
    $string = "user=$username,pass2=$CoveredSHA256Hash,pass1=$CoveredSHA1Hash,rpass2=$RawSHA256Hash,rpass1=$RawSHA1Hash,rand2=$Random";
    $header = base64_encode($string);
    $headers = array('Content-Type:application/json','Authorization: Basic '. $header);
    $ch = curl_init();      
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);   
    curl_setopt($ch, CURLOPT_URL, $url);   
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    $result = curl_exec($ch);   
    curl_close($ch);   
    $obj=json_decode($result);
    echo "<br>=<br>";
    if($obj->{'Error'}=='None')
    {
        $connectstring='{"homePageUrl": "https://kaseya.acomps.ru/liveconnect/","payload":{"auth":{"Token":"' . $obj->{'Result'}->{'Token'} . '"},"agentId":"422798656810383","navId": "files"}}';
        $connectstringb64=base64_encode($connectstring);
        echo "<a href=\"kaseyaliveconnect://$connectstringb64\">Connect to computer</a>";
    }
    else
    {
        echo "Error connection to server <br>";
        echo $obj->{'Error'} . "<br>";
        print_r($obj);
    }
}
?>
</html>