国家数字教育资源公共服务体系是政府提供数字教育资源基本公共服务的载体,主要通过网络学习空间的形式提供资源服务并支撑基于信息技术的新型教育教学模式。接入到国家服务体系的平台必须是由政府建设的,并为该区域师生提供公共服务。
用户每次登录区域平台,都要同步获取体系会话,未认证的用户需要按体系要求完成实名认证。
1、接入流程
(1)线下流程
已经建立区域教育资源公共服务平台的地区,由区域教育行政部门指定区域内教育资源公共服务平台,向中央电教馆提出接入申请,并按本规范要求对平台原有模块进行升级改造;尚未建立区域教育资源公共服务平台的地区,可以由区域教育行政部门向中央电教馆提出国家平台区域部署申请。
(2)线上流程
体系管理员收到区域平台接入的申请资料,由专人在服务体系中创建平台信息,将平台接入ID和KEY以及sysCode系统码线下发给区域平台建设运维主管单位,区域平台建设运维主管单位依据本规范进行接口调试和技术测试,确认无误后线下向体系管理员提出区域平台上线申请,体系管理员线上进行确认后区域平台即可上线。区域平台上线后,区域教育行政部门管理员可选用本区域接入的应用,同时可获取上级各单位在公共服务体系上接入的应用,并推送至用户空间。
(3)时序图
2、认证方式
实名校验模式
该模式依托服务体系的实名校验服务,接入的平台在自身平台登录成功后,必须向服务体系请求获取体系会话,未实名的用户需进行实名校验,校验成功后服务体系记录校验日志。
3、接入说明
国家公共服务体系中提供了一系列类型的接口,包括会话接口、应用接口以及OAuth相关的接口,下面会以应用展示功能为例详细说明下平台在对接改造过程会使用到的接口。
(1)获取接口访问令牌
平台调用体系接口的第一步,访问令牌是服务商使用接口的凭证,通过访问令牌,服务商可以使用自身权限下的各种接口。
l http://IP:PORT/apigateway/getAccessToken
l Post请求参数:
appId:应用id,系统自动生成APPID和APPKEY;
timeStamp:当前时间戳;
keyInfo:根据Hmac算法APPID+APPKEY+timeStamp的加密数据;
sysCode:系统来源编码。
l 接口详见开放接口规范-开放接口章节。
(2)获取应用信息列表
平台中需要展示体系中的应用时需要调用该接口。平台空间需默认展示用户归属的各级机构已选用的应用,用户可选的个人应用在“更多应用”或者“应用管理”里面展示。体系应用不能删除,用户可以根据自身需要进行排序和隐藏。体系应用初次使用时需要用户进行授权,同时用户可对体系应用进行评价和举报。
l 调用接口信息如下:
n 请求地址:
http://IP:PORT/appInfo/getAppList?accessToken=ACCESS_TOKEN
{
"usessionId ":"000000XXXXXXXX",
"pageNo":1,
"pageSize":1
}
n 应答报文:
{
"retCode": "000000",
"retDesc": "成功",
"data":
{
"count": 150,
"dataList": [{
"appId": "257fa1edab0011e6a119843a4b3285ee",
"appName": "应用******",
"appImage": "http://IP:PORT/app/FGHJK.jpg",
"personScope": "0,1,2,3",
"intoSpace": "1",
"appClassification": "app_classify_02",
"evaluationUrl": "http://IP:PORT/bmp-web/getSpAppDetail_index?appId=M0f05Eq",
"reportUrl": "http://IP:PORT/bmp-web/sysAppReport/appReport?appId=M0f05Equ0"
}]
}
}
评价和举报地址分别需要在获取地址后拼接体系会话usessionId,例:
http://IP:PORT/bmp-web/getSpAppDetail_index?appId=M0f05Eq¶m=XXXXX;
XXXXX即为体系会话usessionId的值。
(3)获取体系会话usessionId
usessionId代表了在体系中登录的唯一标记,平台中这个值的来源有多种途径,根据不同的对接形式来源不同,下面是获取体系会话的介绍。
会话交换:区域平台不使用体系的CAS单点登录和OAuth授权登录服务,只需要使用体系的应用、资源等数据,体系提供了区域平台本地会话与体系会话交换的接口,调用第三方会话交换接口后体系返回usessionId和ticket给区域平台,前提是区域平台的用户通过了实名校验,方可通过接口进行会话交换,流程详见实名认证对应章节。
校验第三方会话(需第三方平台开发接口)
服务体系通过该接口向第三方平台校验用户登录的临时会话。
第三方应用根据规范开发接口提供给体系使用。
【第三方会话交换会话】中会使用该接口验证第三方平台的用户登录信息,验证完后判断是否通过实名认证,通过就创建体系会话返回。
请求地址:
http://ip:port/url(第三方平台可以自定义链接,符合http接口调用模式,开发完线下给体系技术人员进行配置)
请求报文:
{
localSession": "9d82FGHJK23D***************GHJK"
}
应答报文:
{
"retCode": "000000",
"retDesc": "success"
userInfo": {
"name": "周力*",
"idCardNo": "421122**********25",
"userIdentity": "1"
}
}
接口详见开放接口-用户会话接口-校验第三方会话。
调用体系第三方会话交换接口获取usessionId。
用户在第三方应用登录后可以通过本地临时会话与体系会话进行交换,获取体系的用户登录会话。
请求地址:
http://ip:port/userSession/sessionInterchange?accessToken=ACCESS_TOKEN
请求报文:
{
localSession": "9d82FGHJK23D***************GHJK"
}
应答报文:
{
"retCode": "000000",
"retDesc": "success",
"data": {
"usessionId": "0040032E20184955GHJHK9EACA1501F8F",
"ticket": "eUg3OTQ1OWVjMjItZDdjYy0xMWU2LTk5YzctODQzYTRiMzI4NWVlMTQ4NDExODQzNDE3NQ=="
}
}
接口详见开放接口-用户会话接口-第三方会话交换。
(4)使用体系会话创建Ticket
用户从平台中访问体系推送的各级汇聚的应用,为了让应用与体系之间保持用户会话,平台需创建体系会话Ticket,并传递给应用。
调用接口信息如下:
请求地址:
http://IP:PORT/userSession/createTicket?accessToken=ACCESS_TOKEN
请求报文:
{
"usessionId": "9d82a9ca-8dfa-4d3f-8834-43887a73c2e2"
}
应答报文:
{
"retCode": "000000",
"retDesc": "success",
"data": {
"ticket":"eUg3OTQ1OWVjMjItZDdjYy0xMWU2LTk5YzctODQzYTRiMzI4NWVlMTQ4NDExODQzNDE3NQ=="
}
}
(5)会话Ticket传递链接格式
平台与应用之间保持用户登录会话状态的参数ticket和sysCode通过链接传递,下面给出参考URL:
http://体系应用URL?ticket=******&sysCode=******