diff --git a/TELEPORT-WEB-JSON-RPC.md b/TELEPORT-WEB-JSON-RPC.md new file mode 100644 index 0000000..80324d2 --- /dev/null +++ b/TELEPORT-WEB-JSON-RPC.md @@ -0,0 +1,170 @@ +# TELEPORT WEB JSON-RPC + +本文详细描述teleport web服务提供的RPC接口。 + +TELEPORT WEB服务在 7190 上监听,其JSON-RPC接口也在此端口上访问,但出于安全性考虑,JSON-RPC仅允许本机内部访问,其访问格式如下: + +`http://127.0.0.1:7190/rpc/method/params` + +其中,params是经过urlencode后的json格式的字符串。 + +所有的返回数据均为json格式,其中包含`code`域指明执行情况,如果有附加返回数据,则包含在`data`域中。如果发生错误,则`code`域为非0值,并且由`message`域指明错误原因。例如: + +```json +// 成功返回 +{ + "code": 0, + "data": { + "dbid": 178 + } +} + +// 失败返回 +{ + "code": 4, + "message": "无法创建指定目录。" +} +``` + + + +注意:数据库中认证信息的密码和私钥是使用AES加密算法加密存放的,而且JSON-RPC接口在传递认证信息时,密码或私钥也是加密传输的。此密钥由WEB服务在首次运行时创建并保存在配置文件中,CORE服务和WEB服务均会读取此配置文件。因为密钥用于加密数据库中的字段,因此一经创建就不允许修改。 + + + +## JSON-RPC methods + +- [get_auth_info](#get_auth_info) +- [session_begin](#session_begin) +- [session_end](#session_end) +- [session_fix](#session_fix) +- [exit](#exit) + +## JSON RPC API Reference + +### 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 + +#### 示例 + +```json +// 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服务生成回放记录文件的路径。 + +#### 示例 + +```json +// Request +{ + "sid": "1234abcd" +} + +// Result +{ + "code": 0, + "rid": 123 +} +``` + +--- + +### session_end + +标记一个会话的结束。 + +#### 参数 + +1. `rid` - 会话记录ID +2. `code` - 结束标记 + +#### 返回 + +无返回数据。 + +#### 示例 + +```json +// Request +{ + "rsid": 123, + "code": 0 +} + +// Result +{ + "code": 0 +} +``` + +--- + +### session_fix + +修复数据库中的会话状态。如果因异常情况,core服务未能正确汇报会话结束,则当前处于未结束的会话均会始终处于连接状态。因此,在CORE服务启动时会调用此接口,来修复所有异常状态的连接,使之能够正确显示“异常终止”的状态。 + +#### 参数 + +无参数。 + +#### 返回 + +无返回数据。 + +------ + +### exit + +退出服务。 + +#### 参数 + +无参数。 + +#### 返回 + +无返回数据。 +