5 TELEPORT WEB JSON RPC
Apex Liu edited this page 2017-03-06 22:54:18 +08:00
This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 = RDP2 = SSH3 = 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

退出服务。

参数

无参数。

返回

无返回数据。