某公司_SSLVPN API实现原理和详细步骤说明:
请求方式:POST 请求地址:
在线sha256工具:
第一段:通用语法,即不管是“新建用户”还是“删除用户”,第一段总是通用语法: 标红部分用VPN设备地址和端口替换 第二段:现在的目的是“新建用户”,即对应的具体动作为: controler=User&action=AddUserCloud 如果是“编辑用户”,对应的动作是:controler=User&action=UpdateUserCloud
然后是“生成$params”:$params由下面三段参数组成:
1.“请求地址的第二段” 2.具体要新建用户的参数,比如“用户名”“密码”“描述”等: 例如新建用户名为测试,密码123,在/组下 name=测试 passwd=123 parent_group=/ …. 每个动作都有对应的必填字段
比如新建用户,必填字段有name和parent_group字段 但是,必填字段只是相对的,应当按实际情况: 比如需要修改用户名时,必填字段有old_name和new_name和parent_group字段 当不需要修改用户名,仅需要修改密码时,必填字段可以没有new_name,只需old_name来定位这个用户即可。 其他情况(修改资源等)参考该项 …….. 详细参数见附件 3.时间戳: timestamp=1583908219(可以从时间戳计算网站得到,取秒级时间戳)
然后是“生成$params”后对$params三段参数进行排序(A-Z的顺序):
例如: action=AddUserCloud&controler=User&name=测试&parent_group=/&passwd=123×tamp=1583908219
按照$params.$timestamp.$key的顺序拼接:
对上一段拼接后的参数进行SHA256运算得到sinfor_apitoken:
将sinfor_apitoken字段加上$params参数中去除“请求地址的第二段”的参数,拼接成body字段
详见下图,注意其中没有请求地址的具体操作字段
使用fiddler工具进行测试,将请求url填入,request body部分填入body字段
PS:算出body字段的步骤详见上文,此处用python代码运算代替 测试结果 返回值为true,表示成功。 此时查看VPN用户,发现新建成功。 |