mirror of https://github.com/tp4a/teleport
Page:
TELEPORT WEB JSON RPC
Table of Contents
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服务启动时会调用此接口,来修复所有异常状态的连接,使之能够正确显示“异常终止”的状态;
参数
ip
- core服务的JSON-RPC监听IPport
- core服务的JSON-RPC监听端口
返回
无返回数据。
示例
// Request
{
"ip": "127.0.0.1",
"port": 52080
}
// Result
{
"code": 0
}
get_auth_info
获取认证信息,用于登录远程主机。
参数
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
}
}
session_begin
标记一个会话的开始。
参数
sid
- 会话ID
返回
rid
- 会话记录ID,用于CORE服务生成回放记录文件的路径。
示例
// Request
{
"sid": "1234abcd"
}
// Result
{
"code": 0,
"rid": 123
}
session_end
标记一个会话的结束。
参数
rid
- 会话记录IDcode
- 结束标记
返回
无返回数据。
示例
// Request
{
"rid": 123,
"code": 0
}
// Result
{
"code": 0
}
exit
退出服务。
参数
无参数。
返回
无返回数据。