教育信息化、信息孤岛与身份认证

标签: 技术 | 发表时间:2015-12-25 00:00 | 作者:wuwenjie
分享到:
出处:http://wwj718.github.io/

Design programs to be connected to other programs --Unix philosophy

缘起

最近接触的项目和需求中,统一身份认证的问题反复出现,花了不少功夫去了解身份认证这块相关的标准和协议。

身份认证/授权这部分涉及的概念真是五花八门,一度把我搞得七荤八素,相关概念包括但不限于:session,cookie,OpenID,OAuth2,CAS,JWT,SSO,Token,SAML,Shibboleth(以上这些概念并不都在同一层面)

其中一些属于协议,一些属于实现,一些属于通用的概念。

最近在和某高校合作的项目中,校方也痛下决心要把校园内各个系统进行打通(教育部有要求避免信息孤岛),在交流中发现,信息孤岛在国内高校中广泛存在,而我自己目前折腾的东西属于教育信息化这个领域,所以觉得相比于技术细节,理清这些问题是更有意义的。

问题描述

我们首先来看看我们面临的问题

许多高校每年采购若干教育信息化系统,再加上内部自建的,积年累月,大浪淘下之后,学校里运行着若干异构系统,他们都有一套自己的认证机制,自己的用户系统,某天学校有了新需求,需要若干系统协同合作,却发现整合他们的成本已经高于购置一套新系统的成本(包括时间成本)。

于是他们用新购的系统解决眼前的业务问题,接着这个新系统风风火火地奔往下一个信息孤岛

这些教育信息化系统/教务系统进校之初,往往需要先与教务相关的数据中心整合,同步用户以及其他关系,和许多工程项目一样,为了进度采用一种dirty and quick的方案。不同公司的不同系统,与学校数据中心的整合又往往不一样,于是校方整出许多数据视图和接口,应对一直只需,没精力做长期打算,这些临时接口往往是滋生bug,产生臃肿代码,引起错误和需要大量重复劳动的地方。

问题分析

这些问题的出现,几乎是一种必然。我们知道几乎所有的系统都需要登录访问,访问是有状态的,所以各个系统需要与数据中心整合(获取用户信息),而整合过程中,由于业务的压力,人们往往倾向于一种quick的方案,dirty与否并不再考量范围,更遑论架构上的长远考虑。

缺乏标准,临时方案,追赶进度,于是盐水越喝越多,越来越渴。

我觉得解开这团乱码的关键是身份认证与授权,放弃临时方案,而采用一些被广泛采用而健壮灵活的开放标准。在初期架构上花些精力,一劳永逸地解决这些问题。当然由于这些设计的完备和周到,他们也允许最大非侵入式地整合既有系统,尽可能少地干预以及投入使用的系统,是认证层尽量透明。前提是校方真的有决心去推荐这件事

当然,这个问题倒并不只在高校出现了,企业中也是广泛存在的。实际上只要纯在异构系统,统一身份的需求就很可能出现,由于 懒惰是程序员的美德(这是个玩笑,程序员三大美德里的懒惰当然不是这种愚蠢的懒惰啦),dirty and quick的临时方案就层出不穷

思路

我认为上述的这些问题,可以把它们视为分布式系统的身份认证问题。

而在高校中,教务系统(数据库)往往作为认证权威,不同于OAuth解决的分布式认证问题(去中心化),高校信息化系统的身份认证问题可以被简化为集中式身份认证

标准和协议的意义

有了标准和协议,我们就避免了不必要的争论,而将精力放到真正的问题上。

比如在大括号是否换行这类问题上,你很难说谁的做法更好,所以换行的一派对待不换行的一派,一贯的做法就是手持火把以异教徒的眼光看待对方。但各执己见的结果是项目整体上的一致性很差。一旦有了标准,许多无谓的争论(而且不可能有结果)就可以避免,这在公司之间的协作上很有意义,否则谁也不愿服谁的方案,而且是任意一方的方案逻辑上都能救得一时之急。

在选择标准和协议的时候,我们最好尽量选择被业界广泛使用的,这样一来,不仅易于整合进其他优秀的系统(国外许多优秀的系统都会特意说明兼容这些标准,国内这种做法还不多,但据我所知最近已经有一些教育行业的公司开始或准备这么做了)

采用标准和协议的另一个好处是,许多常见的漏洞可以被避免,这些协议经过广泛的使用,大多的坑都被踩过了,后来者们不仅容易免费获得优秀的实现(诸如CAS有 Jasig/cas)。我们不必重造车轮,就能获得安全可靠的解决方案,这要比拍脑袋的临时方案健壮得多

想想我自己之前踩过的坑,多数时候都可以用

读书太少而想得太多来

来解释

同时标准和协议是一种可增量式改良的实体,由于这些协议和标准的开放性,用户在使用过程遇到的任何问题,都能被收集与反馈,最后标准和协议被不断完善。它们像生命体一样不断地成长与健壮

解决方案

顺着身份认证的思路,具体的解决方案倒有很多可选的,诸如CAS,JWT,SAML等,这些具体的协议与解决方案就留在后续文章里来讨论啦。

在下篇文章里,我们会关注耶鲁大学贡献了CAS协议(CAS是一个协议,并不限于具体语言实现),该协议在国外高校中广泛使用,Open edX就天然支持这种协议,通过该协议,我们轻松就将Open edX与教务系统整合了

也正是这个经历,让我尝到了标准和协议的甜头,才决定写这一系列的文章

另外

身份认证并不足以消除信息孤岛,但会是关键的一步

在折腾Open edX的过程中,我发现RESTful API也是极其有力的工具,通过让系统对外暴露RESTful风格的接口,系统之间变得协作友好,它们如同有了生命体一般,这正是《Unix编程艺术》里建议的,考虑尽量让程序彼此之间能通信,让程序具有组合性,用清晰的接口把若干简单的模块组合成一个复杂的软件。这样是应对复杂度极好的策略

系统之间的协作,如同你培育的生态球一般,各个生物既互相依存/共生又彼此独立,能量和物质顺着食物链流动,它们形成一个生态系统

在协作紧密的地方,信息是流通顺畅的,系统之间分工协作,友好相处。信息孤岛就被打破了

而系统之间的协作,统一的身份往往是最初需要迈出的一步

相关 [教育 信息化 信息孤岛] 推荐:

教育信息化、信息孤岛与身份认证

- - writing for time
最近接触的项目和需求中,统一身份认证的问题反复出现,花了不少功夫去了解身份认证这块相关的标准和协议. 身份认证/授权这部分涉及的概念真是五花八门,一度把我搞得七荤八素,相关概念包括但不限于:session,cookie,OpenID,OAuth2,CAS,JWT,SSO,Token,SAML,Shibboleth(以上这些概念并不都在同一层面).

揭秘移动应用致命伤,破解信息孤岛!

- - 行业资讯
  移动应用跟网络应用Web Internet或许并没有绝对界限,基于地址URL的信息交换方案可能成为解决方法之一. 但是,“破解信息孤岛”是否会生不逢时?至少很多创业公司都在尝试,如Chomp、Quixey、Kinetik 等.   你应该知道移动应用的致命伤之一便是信息孤岛.   对于如何破解移动应用信息孤岛的致命伤,该文作者莎拉·佩雷斯(Sarah Perez)提出了一个基于地址URL的解决方案,根据国内媒体翻译 techfrom 呈现全文:.

形式教育

- chitsaou - Ant's ATField
有一篇侯文詠的專訪,主題是「侯文詠:先鼓舞孩子的熱情吧. 想了解更完整內容的人,歡迎選購. 這裡摘出一部分的內容,這份內容在各大網路新聞平台也可以找到. 我(註:侯文詠)的文章被放入教科書中,有一次我兒子問我:「你的那篇文章學校會考什麼. 」考完之後他拿回來讓我考一次,我居然考八十幾分,我兒子跟我說在他們班上排第十三名.

谈教育

- - XiaoleiTech
作为一个还在读书的学生,我似乎并没有资格去谈论现行的教育;然而另一方面,作为一个要读到27岁才能毕业的学生来说,在学校摸爬滚打这么多年,我又应该很有发言权. 今天在这里要谈的教育,不是“中式教育”,而是“我国的教育”. 没错,在我眼中,这是两个不同的范畴. 所谓的中式教育,我认为更多的是指相对于西式教育不同的传统儒家教学.

从信息化到互联网化

- - 《商业价值》杂志
从关注企业内生问题,到以用户为导向的基因植入,中国企业对IT建设的理解正在进行新的升级和重塑——他们正在用互联网化的精神重塑企业IT,并运用更广泛的社会资源来完成自身竞争力的构建. 安徽合力股份有限公司(以下简称“安徽合力”)刚刚完成的数据挖掘系统的重要作用之一就是发现错误. 这家中国规模最大、产业链条最完整的叉车制造商,希望通过对数据的充分挖掘,展示业务中存在哪些错误,并通过修正错误来进一步服务客户.

公共自行车的信息化

- - Linux桌面中文网
今日与中学老友聚会,在宁波宁海的徐霞客大道也看到了公共自行车,如下图:. 说起公共自行车,不能不提到杭州. 杭州的公共自行车早已经全国甚至全球闻名了,杭州不仅是国内最早运营公共自行车的城市(2008年),也是运营地最成功而且最成熟的(入选全球8座公共自行车服务最棒城市). 可以说这是杭州的一道亮丽的风景线——你在杭州市区随处走走,就会发现街道上无处不在的统一颜色的公共自行车骑过,还有非常密集的租车点.

【教育行业】互联网教育

- - CSDN博客推荐文章
目前国内外在线教育如火如荼地发展着,市场很热,但用户很冷,真正贴近用户需求的不多. 大部分产品还是传统教育的填鸭式思维,无非是培训视频、课件资源、题库、个人空间、教育资讯等等,做下资源整合,较少从用户出发思考需求,从市场出发挖掘需求. 小学、初中、高中的应试教育,传统教育已经做的很好了. 从互联网教育角度来讲,还需加强的是传统教育的信息化,如在线视频、在线测试、题库等等,有效补充线下教育的不足.

苦逼的教育

- - 东西
我的同事Jim也是老师,他和我经常切磋教学方法. 有一天他从教室回来,问我:你听到教学楼那边传来的爆炸声没有. 他笑着说:It's students' minds being blown away.  他是说他用的某个教学方法管用,学生为之震撼,教学效果形势大好. 意思是某事听来让你震撼,约等于中文中说的“震撼麻痹而昏倒”.

电力企业信息化系统主要报表展示

- - CSDN博客推荐文章
装机规模指的是一个发电厂或者区域电网的发电能力. 本表是由电力公司的调通中心负责填写,因此表中所体现的装机规模,即本公司向其它的发电厂或者电网调度的电量总量数据,以及电量的类型,接入电压等级等具体参数. 通过对这些数据进行不同维度进行排列组合,使用户能够一目了然的掌握本公司整个年度的电量调度情况,从中发现是否存在诸如由于本单位的相关电厂产能不足,而必须从外网调入大量的电力,或者电量的调度多发生于省调以及省调以下的单位,说明本年度网内总的电力缺口不大等问题.

JeeSite 企业信息化快速开发平台

- - 开源软件 - ITeye博客
JeeSite 企业信息化快速开发平台. JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的 开源Java EE快速开发平台. JeeSite本身是以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流引擎.