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调用成功其他值系统错误三、实验结果数据回传接口回传数据接口是指:"实验空间"用户完成实验教学项目后,所产生的实验结果数据.
如果有实验报告,则先调用上传接口,然后再将这些数据和用户信息一起通过回传数据接口同步至"实验空间".
关于HostYun主机商在之前也有几次分享,这个前身是我们可能熟悉的小众的HostShare商家,主要就是提供廉价主机,那时候官方还声称选择这个品牌的机器不要用于正式生产项目,如今这个品牌重新转变成Hostyun。目前提供的VPS主机包括KVM和XEN架构,数据中心可选日本、韩国、香港和美国的多个地区机房,电信双程CN2 GIA线路,香港和日本机房,均为国内直连线路,访问质量不错。今天和大家分享下...
BuyVM测评,BuyVM怎么样?BuyVM好不好?BuyVM,2010年成立的国外老牌稳定商家,Frantech Solutions旗下,主要提供基于KVM的VPS服务器,数据中心有拉斯维加斯、纽约、卢森堡,付费可选强大的DDOS防护(月付3美金),特色是1Gbps不限流量,稳定商家,而且卢森堡不限版权。1G或以上内存可以安装Windows 2012 64bit,无需任何费用,所有型号包括免费的...
Cloudxtiny是一家来自英国的主机商,提供VPS和独立服务器租用,在英国肯特自营数据中心,自己的硬件和网络(AS207059)。商家VPS主机基于KVM架构,开设在英国肯特机房,为了庆祝2021年欧洲杯决赛英格兰对意大利,商家为全场VPS主机提供50%的折扣直到7月31日,优惠后最低套餐每月1.5英镑起。我们对这场比赛有点偏见,但希望这是一场史诗般的决赛!下面列出几款主机套餐配置信息。CPU...