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