3国家虚拟仿真实验教学项目技术接口规范(2018版)一、技术接口说明服务"国家虚拟仿真实验教学项目共享平台(实验空间)"(以下简称:实验空间)的用户与学校实验教学项目的用户管理系统之间的身份自动识别,避免二次登录.
识别后的用户在学校实验教学项目上的相关数据,将自动回传到国家虚拟仿真实验教学项目共享平台,支撑数据统计和监测.
数据接口方式分两种,分别是:用户验证令牌方式和验证接口方式.
基于C/S架构的应用只能选择验证接口方式.
本文中所有Host站点统一为:http://www.
ilab-x.
com.
技术接口实现路径如下图所示.
二、用户身份识别规范当用户登录"实验空间"后点击【我要做实验】时(如下图),"实验空间"会以参数形式提供Token.
链接组成样例:实验平台的URLtoken,例如:http://life.
scnu.
edu.
cn/biology/vrlab/co2/token=AAABZKECn4ABAAAAAAABhqM%3D.
fKf3J5DN6Ym0Fo3I5CJYdzQMR0iwEz7QnQIit2Mfl6v03jpEJ%2Fr4FMRFqh5kN4yw.
tqIPoyvkHe2MGOXMimE9O554Lo6AbBCQkZlsqQI4XRQ%3D实验空间用户验证时使用XJWT标准,此标准基于JSONWebToken(JWT)开发.
XJWT包含三个参数:header,payload,signature,因此生成token就要先获得这三个参数.
(一)用户验证令牌token.
token的组成结构:based64(rawheader)base64(rawpayload)+'.
'+base64(rawsignature)token组成参数header,payload,signature说明如下:1.
header.
组成结构:[expiry:long][type:byte][issuerid:long]参数说明:项目说明expiry过期时间,UTC以毫秒为单位,二进制8byte,Bigendian.
type类别,值为二进制,必填.
1-JSON,2-SYS.
0-保留Issuerid由"实验空间"分配给各实验平台的唯一编号,二进制8byte,Bigendian.
2.
payload.
payload是64bytes的整数倍.
其组成结构:aes256(randomlong+body+aespadding,aeskey).
其中:aes256是AES256加密算法;randomlong是随机的8byte数字;aespadding是自定义的字符串,为补足64bytes的整数倍;aeskey由"实验空间"生成分配给各实验教学项目.
body为UTF8编码的JSON格式字符串,格式如下表:项目说明id用户id.
un用户usernamedis用户姓名显示3.
signature.
组成结构:base64(HmacSHA256(based64(rawheader)base64(rawpayload),secretkey))其中:rawheader是上述中生成的header;rawpayload是上述中生成的payload;secretkey是生成aeskey的密码,由"实验空间"提供.
4.
验证与解密.
使用base64解码signature,通过secretkey验证,如果验证失败,则token失效.
使用base64解码header,将得到的过期时间(expiry)和当前时间进行比较,如果已过期,则token失效;如果没有提供headertype,则token失效;使用base64解码,并使用aeskey进行解密,得到的数据前8byte和aespadding数据将被丢弃,返回剩余的数据json.
各实验教学项目取得用户数据后,可自行进行保存.
验证返回码及说明:code值说明0验证成功26token失效其他值系统错误(二)验证接口开发规范.
当用户直接访问各实验教学项目时、token失效时、用户处于未登录状态访问各实验教学项目时、或者实验教学项目采用C/S架构模式,则第三方接入端可按照给定的登录接口形式,开发可使用"实验空间"用户名及密码获取用户基本信息的接口.
需要发送数据到http://ilab-x.
com/sys/api/user/validate服务进行登录.
接口名称:http://ilab-x.
com/sys/api/user/validate.
调用方法:GET.
详细说明:见下表参数说明参考值username用户名testpassword加密后密码:password=sha256(nonce+sha256(password)+cnonce).
sha256是SHA256加密算法2760F0245D3C03E7ABDA1CCA310187E2E33EEB886FDE0FCD5C827E971AED44D7nonce安全验证随机数:自建函数,随机生成16位字符串.
允许字符:['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']0F2785E6ED1B59ACcnonce二次安全验证随机数:自建函数,随机生成16位字符串.
允许字符:['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']F5A981C203030722调用示例:http://ilab-x.
com/sys/api/user/validateusername=test&password=2760F0245D3C03E7ABDA1CCA310187E2E33EEB886FDE0FCD5C827E971AED44D7&nonce=0F2785E6ED1B59AC&cnonce=F5A981C203030722.
返回结果示例:{"code":0,"username":"test","name":"测试用户"}返回参数说明:code说明0调用成功其他值系统错误三、实验结果数据回传接口回传数据接口是指:"实验空间"用户完成实验教学项目后,所产生的实验结果数据.
如果有实验报告,则先调用上传接口,然后再将这些数据和用户信息一起通过回传数据接口同步至"实验空间".
SoftShellWeb是一家2019年成立的国外主机商,商家在英格兰注册,提供的产品包括虚拟主机和VPS,其中VPS基于KVM架构,采用SSD硬盘,提供IPv4+IPv6,可选美国(圣何塞)、荷兰(阿姆斯特丹)和台湾(台北)等机房。商家近期推出台湾和荷兰年付特价VPS主机,其中台湾VPS最低年付49美元,荷兰VPS年付24美元起。台湾VPSCPU:1core内存:2GB硬盘:20GB SSD流量...
racknerd在促销美国洛杉矶multacom数据中心的一款大硬盘服务器,用来做存储、数据备份等是非常划算的,而且线路还是针对亚洲有特别优化处理的。双路e5+64G内存,配一个256G的SSD做系统盘,160T SAS做数据盘,200T流量每个月,1Gbps带宽,5个IPv4,这一切才389美元...洛杉矶大硬盘服务器CPU:2 * e5-2640v2内存:64G(可扩展至128G,+$64)硬...
TmhHost是一家国内正规公司,具备ISP\ICP等资质,主营国内外云服务器及独立服务器租用业务,目前,商家新上香港三网CN2 GIA线路VPS及国内镇江BGP高防云主机,其中香港三网CN2 GIA线路最低每月45元起;同时对美国洛杉矶CN2 GIA线路高防及普通VPS进行优惠促销,优惠后美国洛杉矶Cera机房CN2 GIA线路高防VPS季付99元起。香港CN2 GIA安畅机房,三网回程CN2 ...