mirror of https://github.com/tp4a/teleport
Created TELEPORT WEB JSON RPC (markdown)
parent
02553ffd8c
commit
e027d36654
|
@ -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
|
||||
|
||||
退出服务。
|
||||
|
||||
#### 参数
|
||||
|
||||
无参数。
|
||||
|
||||
#### 返回
|
||||
|
||||
无返回数据。
|
||||
|
Loading…
Reference in New Issue