diff --git a/TELEPORT-CORE-JSON-RPC.md b/TELEPORT-CORE-JSON-RPC.md new file mode 100644 index 0000000..7fc0c53 --- /dev/null +++ b/TELEPORT-CORE-JSON-RPC.md @@ -0,0 +1,191 @@ +# TELEPORT CORE JSON-RPC + +本文详细描述teleport core服务提供的RPC接口。 + +TELEPORT CORE服务默认在 127.0.0.1:52080 上监听,其访问格式如下: + +`http://127.0.0.1:52080/method/params` + +其中,params是经过urlencode后的json格式的字符串。 + +所有的返回数据均为json格式,其中包含`code`域指明执行情况,如果有附加返回数据,则包含在`data`域中。如果发生错误,则`code`域为非0值,并且由`message`域指明错误原因。例如: + +```json +// 成功返回 +{ + "code": 0, + "data": { + "sid": "123456abcd" + } +} + +// 失败返回 +{ + "code": 4, + "message": "无法创建指定目录。" +} +``` + + + +注意:接口中的认证信息是使用AES加密算法加密的,解密密钥来自配置文件,详情请查阅WEB服务的JSON-RPC接口文档。 + + + +## JSON-RPC methods + +- [request_session](#request_session) +- [enc](#enc) +- [status](#status) +- [exit](#exit) + +## JSON RPC API Reference + +### request_session + +申请一个会话ID,供web服务调用。每当获取一个会话ID,web服务均会将其记录到一个表中备用。 + +目前有两种方式可以获取会话ID。 + +#### 已知认证ID + +认证ID是由远程主机信息、认证信息等关联映射后生成的一个ID,将一个主机授权给一个用户,将产生一个认证ID。 + +##### 参数 + +1. `authid` - 认证ID,十进制数字 + +##### 返回 + +1. `sid` - 一个十六进制字符串形式的会话ID。 + +##### 示例 + +```json +// Request +{ + "authid": 12345 +} + +// Result +{ + "code": 0, + "data": { + "sid": "0123abcdef" + } +} +``` + +#### 已知认证信息 + +一般用于页面测试连接之用。 + +##### 参数 + +1. `ip` - 远程主机的IP地址 +2. `port` - 远程主机的端口 +3. `uname` - 登录远程主机的用户名 +4. `uauth` - 登录远程主机的认证信息(密码或者私钥),是密文的base64编码字符串 +5. `authmode` - uauth域的类型,1 = 密码,2 = 私钥 +6. `protocol` - 登录协议,1 = RDP,2 = SSH,3 = TELNET + +##### 返回 + +同已知认证ID。 + +##### 示例 + +```json +// Request +{ + "ip": "192.168.0.8", + "port": 23, + "uname": "root", + "uauth": "b903239f8543d04b5d13b143087c68d1b2168786408fcbce5f5374fce5edbc8e2a8697c15331677e6ebf0b", + "authmode": 1 + "protocol": 2 +} + +// Result +{ + "code": 0, + "data": { + "sid": "0123abcdef" + } +} +``` + +--- + +### enc + +加密一个字符串。 + +#### 参数 + +1. `p` - 被加密的明文字符串 + +#### 返回 + +1. `c` - 加密后的密文的base64编码字符串 + +#### 示例 + +```json +// Request +{ + "p": "this-is-a-password" +} + +// Result +{ + "code": 0, + "data": { + "c": "Mxs340a9r3fs+3sdf==" + } +} +``` + +--- + +### status + +获取core服务的工作状态和基本信息。 + +#### 参数 + +无参数。 + +#### 返回 + +1. `up` - 服务已运行时间(秒) +2. `connections` - 当前连接数 +3. ​ + +#### 示例 + +```json +// Result +{ + "code": 0, + "data": { + "up": 138437, + "connections": 52 + } +} +``` + +--- + +### exit + +退出服务。 + +#### 参数 + +无参数。 + +#### 返回 + +无返回数据。 +