Created TELEPORT WEB JSON RPC (markdown)

master
Apex Liu 2017-02-20 03:34:27 +08:00
parent 02553ffd8c
commit e027d36654
1 changed files with 170 additions and 0 deletions

170
TELEPORT-WEB-JSON-RPC.md Normal file

@ -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 = RDP2 = SSH3 = 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
退出服务。
#### 参数
无参数。
#### 返回
无返回数据。