Sangfor_SSLVPN_API(小白篇)
  

Z_League_ZzY 68061人觉得有帮助

{{ttag.title}}
本帖最后由 Z_League_ZzY 于 2020-12-17 09:22 编辑

  • 某公司_SSLVPN API实现原理和详细步骤说明:

  • 下面以“新建用户”来说明各个参数含义及完整步骤:
  • 先启用openapi,获取key

请求方式:POST
请求地址:

工具:时间戳计算网址https://tool.lu/timestamp/
在线sha256工具:http://www.jsons.cn/sha/

  • 首先对“请求地址”分段进行理解:

第一段:通用语法,即不管是“新建用户”还是“删除用户”,第一段总是通用语法:
标红部分用VPN设备地址和端口替换
第二段:现在的目的是“新建用户”,即对应的具体动作为:
controler=User&action=AddUserCloud
如果是“编辑用户”,对应的动作是:controler=User&action=UpdateUserCloud

  • 然后是“生成$params”:$params由下面三段参数组成:

1.“请求地址的第二段”
2.具体要新建用户的参数,比如“用户名”“密码”“描述”等:
例如新建用户名为测试,密码123,在/组下
name=测试
passwd=123
parent_group=/
….
每个动作都有对应的必填字段

比如新建用户,必填字段有nameparent_group字段
但是,必填字段只是相对的,应当按实际情况:
比如需要修改用户名时,必填字段有old_namenew_nameparent_group字段
当不需要修改用户名,仅需要修改密码时,必填字段可以没有new_name,只需old_name来定位这个用户即可。
其他情况(修改资源等)参考该项
……..
详细参数见附件
OpenAPI_CN.pdf (994.63 KB, 下载次数: 133)
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用户,发现新建成功。

打赏鼓励作者,期待更多好文!

打赏
40人已打赏

发表新帖
热门标签
全部标签>
每日一问
每周精选
技术笔记
技术盲盒
2024年技术争霸赛
产品连连看
2023技术争霸赛专题
干货满满
技术咨询
标准化排查
通用技术
技术晨报
新版本体验
功能体验
秒懂零信任
自助服务平台操作指引
文档捉虫活动
信服课堂视频
GIF动图学习
答题自测
每日一记
运维工具
SDP百科
技术圆桌
排障笔记本
专家问答
在线直播
安装部署配置
测试报告
解决方案
项目案例
存储
技术争霸赛
卧龙计划
畅聊IT
MVP
网络基础知识
升级
安全攻防
上网策略
日志审计
问题分析处理
流量管理
云计算知识
用户认证
原创分享
sangfor周刊
VPN 对接
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
迁移
加速技术
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
华北区拉练
天逸直播
以战代练
山东区技术晨报
齐鲁TV
华北区交付直播
北京区每日一练

本版版主

26
76
83

发帖

粉丝

关注

本版达人

新手24268...

本周建议达人

阿凯

本周分享达人

新手39341...

本周提问达人