Skip to content

TELEPORT WEB JSON RPC

Apex Liu edited this page Mar 6, 2017 · 5 revisions

TELEPORT WEB JSON-RPC

本文详细描述teleport web服务提供的RPC接口。

TELEPORT WEB服务在 7190 上监听,其JSON-RPC接口也在此端口上访问,但出于安全性考虑,JSON-RPC仅允许本机内部访问,其访问格式如下:

GET 方式

  • URL格式 http://127.0.0.1:7190/rpc?params
  • 示例:curl http://127.0.0.1:7190/rpc?{"method":"test","param":[]}

POST方式

  • URL格式 http://127.0.0.1:7190/rpc
  • 示例:curl -X POST --data '{"method":"test","param":[]}' http://127.0.0.1:7190/rpc

其中,params是经过urlencode后的json格式的字符串。

所有的返回数据均为json格式,其中包含code域指明执行情况,如果有附加返回数据,则包含在data域中。如果发生错误,则code域为非0值,并由可选message域指明错误原因。例如:

// 成功返回
{
  "code": 0,
  "data": {
    "dbid": 178
  }
}

// 失败返回
{
  "code": 4,
  "message": "无法创建指定目录。"
}

注意:数据库中认证信息的密码和私钥是使用AES加密算法加密存放的,加密服务由核心服务提供,可以调用核心服务的JSON-PRC接口 enc 来加密要保存的密文数据。

JSON-RPC methods

JSON RPC API Reference

register_core

通知web服务,一个core服务上线了。此时web服务会做以下操作:

  • 获取core服务的配置:进行远程连接时需要知道core服务的各个协议监听地址;
  • 修复数据库中的会话状态:如果因异常情况,core服务未能正确汇报会话结束,则当前处于未结束的会话均会始终处于连接状态。因此,在CORE服务启动时会调用此接口,来修复所有异常状态的连接,使之能够正确显示“异常终止”的状态;

参数

  1. ip - core服务的JSON-RPC监听IP
  2. port - core服务的JSON-RPC监听端口

返回

无返回数据。

示例

// Request
{
  "ip": "127.0.0.1",
  "port": 52080
}

// Result
{
  "code": 0
}

get_auth_info

获取认证信息,用于登录远程主机。

参数

  1. authid - 认证ID,十进制数字

返回

  1. ip - 远程主机的IP地址
  2. port - 远程主机的端口
  3. uname - 登录远程主机的用户名
  4. uauth - 登录远程主机的认证信息(密码或者私钥),是密文的base64编码字符串
  5. authmode - uauth域的类型,1 = 密码,2 = 私钥
  6. protocol - 登录协议,1 = RDP,2 = SSH,3 = TELNET

示例

// Request
{
  "authid": 12345
}

// Result
{
  "code": 0,
  "data": {
    "ip": "192.168.0.8",
    "port": 23,
    "uname": "root",
    "uauth": "b903239f8543d04b5d13b143087c68d1b2168786408fcbce5f5374fce5edbc8e2a8697c15331677e6ebf0b",
    "authmode": 1,
    "protocol": 2
  }
}

session_begin

标记一个会话的开始。

参数

  1. sid - 会话ID

返回

  1. rid - 会话记录ID,用于CORE服务生成回放记录文件的路径。

示例

// Request
{
  "sid": "1234abcd"
}

// Result
{
  "code": 0,
  "rid": 123
}

session_end

标记一个会话的结束。

参数

  1. rid - 会话记录ID
  2. code - 结束标记

返回

无返回数据。

示例

// Request
{
  "rid": 123,
  "code": 0
}

// Result
{
  "code": 0
}

exit

退出服务。

参数

无参数。

返回

无返回数据。