-
Notifications
You must be signed in to change notification settings - Fork 335
TELEPORT WEB JSON RPC
Apex Liu edited this page Mar 6, 2017
·
5 revisions
本文详细描述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
来加密要保存的密文数据。
通知web服务,一个core服务上线了。此时web服务会做以下操作:
- 获取core服务的配置:进行远程连接时需要知道core服务的各个协议监听地址;
- 修复数据库中的会话状态:如果因异常情况,core服务未能正确汇报会话结束,则当前处于未结束的会话均会始终处于连接状态。因此,在CORE服务启动时会调用此接口,来修复所有异常状态的连接,使之能够正确显示“异常终止”的状态;
-
ip
- core服务的JSON-RPC监听IP -
port
- core服务的JSON-RPC监听端口
无返回数据。
// Request
{
"ip": "127.0.0.1",
"port": 52080
}
// Result
{
"code": 0
}
获取认证信息,用于登录远程主机。
-
authid
- 认证ID,十进制数字
-
ip
- 远程主机的IP地址 -
port
- 远程主机的端口 -
uname
- 登录远程主机的用户名 -
uauth
- 登录远程主机的认证信息(密码或者私钥),是密文的base64编码字符串 -
authmode
- uauth域的类型,1 = 密码,2 = 私钥 -
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
}
}
标记一个会话的开始。
-
sid
- 会话ID
-
rid
- 会话记录ID,用于CORE服务生成回放记录文件的路径。
// Request
{
"sid": "1234abcd"
}
// Result
{
"code": 0,
"rid": 123
}
标记一个会话的结束。
-
rid
- 会话记录ID -
code
- 结束标记
无返回数据。
// Request
{
"rid": 123,
"code": 0
}
// Result
{
"code": 0
}
退出服务。
无参数。
无返回数据。