广州“数字教育城”接口技术规范.doc
《广州“数字教育城”接口技术规范.doc》由会员分享,可在线阅读,更多相关《广州“数字教育城”接口技术规范.doc(23页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、广州广州“数字教育城数字教育城”接口技术规范接口技术规范(GZJY/2.12014)(征求意见稿)(征求意见稿)广州市教育局编制广州市教育局编制2014年3月1关于本文档文档名称文档名称广州“数字教育城”接口技术规范说明说明本文档基于广州市教育信息中心(广州市电化教育馆)“数字教育城”二 期项目提炼出的接口技术规范 修改历史修改历史版本版本日期日期修改人修改人修改内容修改内容 GZJY/2.1- 20132013/12/30谢嵘GZJY/2.1- 2014.12014/3/20方昆阳修改本规范的应用范围和部分接口标 准案例2范围1本部分主要用于广州“数字教育城”信息系统规划与建设,将分散、异构
2、的应用和信息资源进行整合,通过统一的访问入口,实现各种应用系统的无缝接入和集成。本接口规范用于指导软件开发商对接入“数字教育城”的系统进行单点登录整合、用户基础数据下发及同步。本技术规范由三部分组成:(1)单点登录接入规范(2)用户基础数据下发规范(3)伪单点登录接入规范本规范适用于所有接入到广州“数字教育城”的区域教育信息化应用系统,需要获取广州“数字教育城”基础用户数据的所有应用,包括广州市全市性的教育信息化应用系统以及各区(县级市)自行建设的教育信息化应用系统,凡在此范围内的应用,均需要按照本规范进行开发。3术语和定义凭证凭证:用户在通过单点登录验证后获得,包含用户的基本信息,如唯一标识
3、、登录名、凭证的有效期等。规范文档中以Ticket表示凭证。凭证标识凭证标识:用户在通过单点登录验证后获得凭证的唯一标识。区域教育信息化应用系统区域教育信息化应用系统:指以提供教育信息化服务为目的的在较大范围内(如中等以上城市或者大型城市的某个区)使用的信息化应用系统,具体包括教育管理系统,教育资源共享系统等。单点登录:单点登录:2英文全称Single Sign On,简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。伪单点:伪单点:又称模拟单点登录,应用漫游,代填口令等等。指用户访问一个应用,例如某
4、WEB邮件,首次访问时,伪单点系统会提示输入WEB邮件的用户名和密码,并替保存到数据库中,同时将将用户名和密码填充到动态表单,使用动态生成的表单提交,从而实现自动登录。当用户再次访问该邮件系统时,伪单点登录系统将自动提交表单,实现单点登录。Web Service:是指一类新型的WEB应用技术,特征在于能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。分发分发:指的是数据生产者通过各种方式将数据传送到消费者的过程。4作用通过广州“数字教育城”接口技术规范,可以实现:(1)接入到教育城的所有应用系统共享用户基础数据;(2)让用户在一次输入用户名密码验证
5、登录后,访问所有应用系统而不需要再输入用户名和密码进行验证;(3)用户在一次注销后,即可在所有应用系统实现注销。5服务逻辑5.1单点登录技术机制单点登录技术机制3单点登录(Single Sign-On,SSO)是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。具体机制如图1所示:图1 单点登录机制当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据(tic
6、ket);用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3。5.25.2基于捎带的时间戳同步机制基于捎带的时间戳同步机制为了保持接入“数字教育城”各子系统的用户基础数据与源的一致性,本规范采用了基于捎带的时间戳同步技术,具体流程如图3所示:4用户单点登录到子 系统检查源系统与目标 系统的时间戳是否 一致?更新目标系统的信息, 并将该条记录的时间戳 设为源记录的时间戳结束否是图3 基于时间戳的同步方法首先在源用户基
7、础信息增加一个时间戳字段,记录数据被修改的时间,同时各子系统也存在有用户基础信息的备份,该备份也有一个时间戳。当用户用单点登录技术登录到子系统时,该用户的基础信息以及时间戳会以XML的形式捎带到子系统,子系统只需检查捎带过来的时间戳与备份是否一致,如果不一致,则以源系统为准进行修改。6单点登录接口规范6.16.1概述概述单点登录是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。主要由统一身份认证平台和认证接口组成,其中认证接口包括:JAVA、PHP、C#,如图4所示:5
8、图4 统一身份认证平台具体流程如下:用户请求访问业务系统。业务系统在系统中查看是否有对应请求的有效令牌,若有,则读取对应的身份信息,允许其访问;若没有或令牌无效,则把用户重定向到统一身份认证平台,并携带业务系统地址,进入第步。在统一身份认证平台提供的页面中,用户输入身份凭证信息,平台验证此身份凭证信息,若有效,则生成一个有效的令牌给用户,进入第步;若无效,则继续进行认证,直到认证成功或退出为止。图5 单点登录页面用户携带第步获取的令牌,再次访问业务系统。6业务系统获取用户携带的令牌,提交到认证平台进行有效性检查和身份信息获取。若令牌通过有效性检查,则认证平台会把令牌对应的用户身份信息返回给业务
9、系统,业务系统把身份信息和有效令牌写入会话状态中,允许用户以此身份信息进行业务系统的各种操作;若令牌未通过有效性检查,则会再次重定向到认证平台,返回第步。通过统一身份认证平台获取的有效令牌,可以在各个业务系统之间实现应用漫游。图6 单点退出页面6.26.2用户基础信息及同步用户基础信息及同步单点登录系统在完成令牌验证后,会将用户基础信息以XML的形式传到目标子系统,具体如下表所示:属性约束释义备注 givenName非空真实姓名 password非空用户密码,用AES加密 userType非空用户类型,目前有五种: student,学生 teacher,教师 manager,行政管理人员(非授
10、课教师) parent,家长 school ,以学校ID为用户名注册的一类账户数字教育城目前以 学生、教师和行政 管理人员三种角色 为主phoneNumber用户手机号码可能为空7studentNumber非空学生的学籍号,学生专有的属性 email邮箱可能为空 userPersonId非空用户身份证号,从学籍系统和工会网站 导出,不保证100%准确学生的身份证号可 能为空,且不一定 准确 birthday非空生日,格式:1985-03-16 sex非空性别,只有两种情况: 1.男; 2.女 stamp非空用户信息更新的时间戳,用于子应用系 统与CAS系统的用户同步,如果子系统的 stamp跟
11、CAS的stamp不一致,说明用户数 据有更新,则子系统也应做相应的更新 。 格式:2014-05-30 09:24:10.0 schoolId非空学校ID,如:440116100001由广州市教育信息 中心提供统一编号 ,部分学校的编号 不规则 schoolName非空学校名称,如:广州市培正中学 zone学校所属的区,如:白云区、番禺区、 从化市、增城市会有部分学校所属 的区为空,主要是 私立幼儿园 gradeId年级ID,与学校关联,学生专属字段, 如果没有完善这个信息,可能为空学生字段gradeName年级名称,学生专属字段,如果没有完 善这个信息,可能为空学生字段classId班级I
12、D,与学校关联,学生专属字段, 如果没有完善这个信息,可能为空学生字段className班级名称,学生专属字段,如果没有完 善这个信息,可能为空学生字段teacherCourse教师所教班级和科目,一个json字符串 数组,教师才有的属性,可能为空或者 ,格式如下(教一门课和教多门课): “classId“:42091,“className“:“一班 “,“gradeId“:16847,“gradeName“:“高二 “,“subjectId“:42091,“subjectName“:“ 信息技术“ 或者: “classId“:37681,“className“:“一班 “,“gradeId“
13、:15081,“gradeName“:“初三 “,“subjectId“:37681,“subjectName“:“ 物理“,“classId“:37688,“className“ :“八班“,“gradeId“:15081,“gradeName“ :“初三“,“subjectId“:37688,“subjectN ame“:“物理“,“classId“:37689,“clas sName“:“九班“,“gradeId“:15081,“grad eName“:“初三“,“subjectId“:37689,“su bjectName“:“物理“教师字段,获取年 级、班级和学科信 息时,要对该js
14、on 进行解析8注:所有字段信息都已经用UTF-8进行编码,所以在客户端要对其进行解码。统一身份认证平台的用户基础数据是权威数据,各业务子系统必须保存一份用户基础数据的备份。用户登录完成后,统一身份认证平台捎带给业务子系统的用户基础数据包含一个时间戳,业务子系统必须将该时间戳与本地备份进行比较,如果不一致,则更新为与权威数据一致。6.36.3 PHPPHP系统单点登录规范系统单点登录规范(1)在PHP项目的目录下加入CAS的客户端CAS-1.3.2;(2)PHP项目中添加CAS登录处理代码,这里根据两种不同的验证模式区分,模式一是“允许匿名访问站点,手动点登录再验证单点登录”,模式二是“不允许
15、匿名访问站点,正常访问之前必须先跳转单点登录验证”。对于模式一,采取的办法是将单点登录单独做一个登录入口链接,通常可以在原来的登录入口链接增设一个URL参数caslogin=yes进行判别,这样可以在原来的登录逻辑执行用户名密码校验前增加一个caslogin判断,决定是否通过单点登录方式校验。对于模式二,采取的办法是找到PHP网站的总入口文件,一般是index.php,或者程序执行必经的其他文件,然后在里面适当位置添加cas登录处理代码。下面是PHP单点登录验证逻辑的主要代码:$phpcas_path = SITE_PATH. “/CAS-1.3.2“; /PHPCAS客户端路径$cas_ho
16、st = “cas.gzjyc.org“; /填写cas服务器部署的url或者ip$cas_port = 443; /cas访问的端口$cas_context = “cas“;require_once $phpcas_path . /CAS.php;phpCAS:client(CAS_VERSION_2_0, $cas_host, $cas_port, $cas_context);9phpCAS:setNoCasServerValidation(); /使用非SSL验证/phpCAS:setCasServerCACert(“D:/zheng2.cer“); / 使用SSL验证phpCAS:fo
17、rceAuthentication();$username = phpCAS:getUser(); /获取登录后的用户名(3)通过getAttribute函数可以获取登录用户的其他信息,如学校、班级,部分信息需要使用urldecode函数解码,如下:phpCAS:getAttribute(“userType“);urldecode(phpCAS:getAttribute(“givenName“);urldecode(phpCAS:getAttribute(“email“);urldecode(phpCAS:getAttribute(“schoolName“);phpCAS:getAttribu
18、te(“userName“);如果是教师用户,课程信息是JSON格式,需要转换成数组,如下:$usertype = phpCAS:getAttribute(“userType“);if($usertype = “teacher“) $course = urldecode(phpCAS:getAttribute(“teacherCourse“);$course = str_replace(“, “, $course); /这一句是兼容性处理$_SESSION“userContent“teacherCourse“ = json_decode($course, true);(4)时间戳同步:用户基础
19、数据包含一个stamp字段,该字段为权威数据的时间戳,如果子系统的本地stamp跟CAS的stamp不一致,说明用户数据有更新,子系统也应做相应的更新。为了实现自动同步更新接入服务的本地数据库,需要在本地数据库用户表加入一个stamp字段,该字段初始化为用户第一次在本地注册时的stamp,以后每次CAS登录后进行本地登录前,比较该stamp字段和CAS传过来的stamp,如果不同则对本地用户数据进行同步更新。(5)单点退出在退出代码部分加入如下逻辑执行单点登录退出,如下:$phpcas_path = SITE_PATH. “/CAS-1.3.2“; /PHPCAS客户端路径 $cas_host
20、 = “cas.gzjyc.org“; /填写cas服务器url或ip $cas_port = 443; /cas访问的端口10$cas_context = “cas“; require_once $phpcas_path . /CAS.php; phpCAS:client(CAS_VERSION_2_0, $cas_host, $cas_port, $cas_context); phpCAS:logoutWithRedirectService(“http:/121.8.98.146/sns“);6.46.4 JAVAJAVA系统单点登录规范系统单点登录规范(1)导入证书ssl.crt到jdk
21、和jre。 keytool -import -trustcacerts -alias casserver -file ssl.crt -keystore “C:Program FilesJavajdk1.6.0_38jrelibsecuritycacerts“ -storepass changeit keytool -import -trustcacerts -alias casserver -file ssl.crt -keystore “C:Program FilesJavajre6libsecuritycacerts“ -storepass changeit图7 导入SSL证书(2)在J
22、AVA项目的WEB-INFlib目录下加入CAS的客户端cas-client-core- 3.2.1.jar; (3)在JAVA项目web.xml文件加入以下filter;org.jasig.cas.client.session.SingleSignOutHttpSessionListene rCAS Single Sign Out Filterorg.jasig.cas.client.session.SingleSignOutFilter11CAS Single Sign Out Filter /*CAS Authentication Filterorg.jasig.cas.client.a
23、uthentication.AuthenticationFiltercasServerLoginUrlhttps:/cas.gzjyc.org/cas/loginrenew falsegateway falseserverName http:/bottle.gzjyc.org/CAS Validation Filterorg.jasig.cas.client.validation.Cas20ProxyReceivingTicketVal idationFiltercasServerUrlPrefix https:/cas.gzjyc.org/cas/12serverName http:/bot
24、tle.gzjyc.org/useSession trueredirectAfterValidation trueCAS HttpServletRequest Wrapper Filterorg.jasig.cas.client.util.HttpServletRequestWrapperFilterCAS Assertion Thread Local Filterorg.jasig.cas.client.util.AssertionThreadLocalFilterCAS Authentication Filter /*CAS Validation Filter /*CAS HttpServ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 广州 数字 教育 接口 技术规范
限制150内