基于 Shibboleth 的跨校认证框架很好的解决的了分布式认证的问题,并且为基于用户属性的授权提供了很好的方案。然而其对于应用的授权却比较简单,是基于认证节点的分布式授权,缺乏中心化的授权管理。因此,各认证节点向应用所传输的身份数据也缺乏标准,数据结构散乱,需要二次整合。分布式的框架架构必须要存在中心化的管理,否则必然会成为一盘散沙。
因此我们需要一个中心化的授权管理机制,来统筹应用节点与认证节点之间的对接。同时又不能破坏现有的分布式认证框架。我们给出的方案是 Oauth2+Shibboleth。通过Oauth2进行授权管理,通过Shibboleth进行分布式的认证。其框架如图所示
如图所示,认证中心作为身份认证的统一交换平台,对接应用市场和跨校认证联盟框架。应用通过Oauth2的开放接口进行授权,授权时调用统一认证接口——即跨校认证接口对接Shibboleth框架进行分布式认证。通过认证传递用户属性数据,这些数据在身份认证中心的平台中进行整合清洗,封装为统一的数据标准格式,以API接口的形式发布予以应用调用。
认证中心采取的Oauth2授权模式,是互联网主流的授权方案,便于应用的快速接入,非常有利于推广。同时数据通过先流入认证中心,再授权给应用的模式,提供了数据清洗的契机,有利于数据结构的标准化,这对于应用的对接推广也是极有帮助的。基于此,我们就能够通过认证中心构建一个开放的授权平台,类似于微信/微博/人人网等开放授权平台,从而形成一个区域教育信息化的生态圈。