![](https://csdnimg.cn/release/download_crawler_static/19094107/bg1.jpg)
收稿日期:20160311;修回日期:20160420
作者简介:张禹(1993),男,江苏苏州人,硕士研究生,主要研究方向为信息安全、数据挖掘(zhangrain911@163.com);陆慧梅(1974),女,江
苏扬州人,副教授,博士,主要研究方向为计算机;向勇(1967),男,重庆人,副教授,博士,主要研究方向为计算机网络、协同工作流.
基于 Shibboleth的在线实验平台多资源访问认证
张 禹
1
,陆慧梅
1
,向 勇
2
(1.北京理工大学 计算机学院,北京 100081;2.清华大学 计算机学院,北京 100084)
摘 要:基于联盟认证的单点登录能够认证不同组织的用户,但资源的多样化导致了管理上的困难。针对该问
题,采用
Shibboleth联盟认证方式,规范多种资源访问的 RESTAPI接口,并借助 Shibboleth的属性筛选策略发布
访问资源的授权码,实现多组织用户访问多种复杂资源的统一认证。以基于 OpenEdX的在线实验平台为例,解
决了平台中统一认证以及复杂资源授权的问题,验证了采用 Shibboleth进行用户统一认证,通过 RESTAPI接口
以及授权码的发布可实现复杂资源共享,并在 OpenEdX上以 XBlock的方式实现与其余系统的数据交互。
关键词:Shibboleth;联盟认证;在线实验平台;OpenEdX
中图分类号:TP39308 文献标志码:A 文章编号:10013695(2017)03090304
doi:10.3969/j.issn.10013695.2017.03.061
IdentityofShibbolethbasedmultiresourceononlineexperimentalplatform
ZhangYu
1
,LuHuimei
1
,XiangYong
2
(1.SchoolofComputerScience&Technology,BeijingInstituteofTechnology,Beijing100081,China;2.SchoolofComputerScience&Tech
nology,TsinghuaUniversity,Beijing100084,China)
Abstract:Federatedidentitywasappliedtoachievesinglesignonforthesituationinwhichuserswerefromdifferentorgani
zations.However,thediversityofresourcesbroughtabouttroubleofmanagement.Tosolvetheproblem,thispaperselected
Shibbolethasamethodoffederatedidentity.SysteminfederationprovidedRESTAPIoftheirownresources,andreleasedthe
authorizationcodewhichidentifiedtheaccessrightsofresourcebytheattributepublishingpolicyinShibboleth,thusitacces
sedmultiresoucebyusersfromdifferentorganazationsafterunifiedauthentication.Takingonlineexperimentalplatformbased
onOpenEdXasanexample,itimplementedunifiedauthenticationandauthorizationofcomplexresources.ItappliedShibboleth
toauthenticateusers
,coupledwithRESTAPIandauthorizationcode,anditsharedcomplexresourcesduringseveralsystems.
Moreover,itdevelopedsomeXBlocksonOpenEdXtosharedatawithothersystems.
Keywords:Shibboleth;federatedidentity;onlineexperimentalplatform;OpenEdX
随着网络资源的多样化,各类系统的规模不断增大,资源
的管理愈发困难。例如,慕课学习和实验环境中包含了视频播
放、作业发布和提交、在线答疑和交流、在线实验等多个系统,
每个系统都拥有各自不同类型的资源,利用 RESTAPI
[1]
可实
现各系统间的信息交互,但无法保证资源访问的安全。并且由
于用户来源于多个不同的组织,规模较大,普通的单点登录无
法满足需求。为了实现单点登录,目前常见的解决方案包括
CAS
[2]
、OpenID
[3]
和 OAuth
[4]
。这三种实现单点登录的方式有
一个共同的缺陷,所有的验证都是交由同一机构(CAS的服务
器端、
OpenID的服务网站以及 Oauth的第三方验证系统)完成
的,账号信息也统一存放(尽管可以是分布式的);在多组织的
情况下,随着用户规模扩大,认证端的负载以及账号的管理难
度会不断 增 加。而 Shibboleth
[5,6]
作为 联 盟认 证
[7]
的一 个 实
现,它不负责实际的验证,用户验证提交给 Shibboleth后被转
发至用户所属的组织,用户的管理也由各自的组织完成,用户
规模的扩大对 Shibboleth影响很小。目前 Moodle在线教学平
台、Webofservice科研资料库等一些由多个组织协作支持的
系统都已经集成了
Shibboleth登录。
Shibboleth虽然能够对多组织用户进行统一的认证,但验
证完成后只能返回用户的属性字段,无法对复杂资源授权。本
文在
Shibboleth的统一认证基础上,通过授权码 +RESTAPI的
方式解决该问题,并借助属性发布策略限制授权码的发布,使
系统在通过 Shibboleth认证后能安全地获取所需资源。为了
进行验证,本文应用该方案解决基于 OpenEdX的在线实验平
台上 统 一 认 证 以 及 资 源 授 权 的 问 题。项 目 仓 库:https://
github.com/xyongcn/online_experiment_platform
。
本文描述了以
Shibboleth为基础的统一认证与资源管理
方案,利用该方案解决了在线实验平台上的多组织统一认证、
资源授权以及数据交互问题。
"
统一认证与资源管理方案
"
"
系统框架
本文选取 Shibboleth作为认证框架,实现多组织用户的统
一认证并向认证系统发布用户属性。对于复杂资源的访问授
权,Shibboleth无法直接通过属性发布实现,需要以间接的方式
控制。在 Shibboleth用户属性中添加 RESTAPI的访问授权码
字段,该授权码用于标志某一资源的访问权限,经用户所属组
织同意(通过修改属性发布策略),系统通过
Shibboleth认证能
够获取外部共享资源的授权码。系统携带授权码访问资源的
第 34卷第 3期
2017年 3月
计 算 机 应 用 研 究
ApplicationResearchofComputers
Vol34No3
Mar.2017