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调用成功其他值系统错误三、实验结果数据回传接口回传数据接口是指:"实验空间"用户完成实验教学项目后,所产生的实验结果数据.
如果有实验报告,则先调用上传接口,然后再将这些数据和用户信息一起通过回传数据接口同步至"实验空间".
WebHorizon是一家去年成立的国外VPS主机商,印度注册,提供虚拟主机和VPS产品,其中VPS包括OpenVZ和KVM架构,有独立IP也有共享IP,数据中心包括美国、波兰、日本、新加坡等(共享IP主机可选机房更多)。目前商家对日本VPS提供一个8折优惠码,优惠后最低款OpenVZ套餐年付10.56美元起。OpenVZCPU:1core内存:256MB硬盘:5G NVMe流量:200GB/1G...
Hostodo是一家成立于2014年的国外VPS主机商,现在主要提供基于KVM架构的VPS主机,美国三个地区机房:拉斯维加斯、迈阿密和斯波坎,采用NVMe或者SSD磁盘,支持支付宝、PayPal、加密货币等付款方式。商家最近对于上架不久的斯波坎机房SSD硬盘VPS主机提供66折优惠码,适用于1GB或者以上内存套餐年付,最低每年12美元起。下面列出几款套餐配置信息。CPU:1core内存:256MB...
数脉科技(shuhost)8月促销:香港独立服务器,自营BGP、CN2+BGP、阿里云线路,新客立减400港币/月,老用户按照优惠码减免!香港服务器带宽可选10Mbps、30Mbps、50Mbps、100Mbps带宽,支持中文本Windows、Linux等系统。官方网站:https://www.shuhost.com* 更大带宽可在选购时选择同样享受优惠。* 目前仅提供HKBGP、阿里云产品,香港...