2019.07
1概述
资源共享和信息安全是互联网时代两个热门的话
题。单点登录系统的设计涉及到资源共享和信息安全这两个重要问题。一些著名的公司都建立了单点登录系统,国内也开始了单点登录系统的研究和应用,见参考文献[1]-[5]。但是,国内对单点登录系统的研究还不够深入,应用还不够广泛。对单点登录系统Shibboleth 进行了一些研究,设计了一个单点登录系统,并将开源教学平台OpenOLAT 和一个示例应用Demo 纳入受保护的资源,实现了在一个登录界面登录后就可以访问这两个应用。
2Shibboleth 工作原理
Shibboleth 是一个基于开源软件包的标准,其目标
是实现组织内部或跨组织的Web 应用单点登录。它允许站点为处于私有保护方式下的受保护的在线资源做出授权认证。Shibboleth 主要针对校园环境中对分布式资源有效访问问题。Shibboleth 与其他系统的区别在于Shibboleth 将认证模块放在用户端,资源提供者只需进行很少的验证工作,这样极大地减轻了资源提供者的负担,同时简化了访问程序,提高了访问资源的效率,安全性也得到了保证。在系统扩展方面,Shibboleth 采用了SAML 规范,同时也在SAML 上作了一些改进,这样保证了系统的可扩展性。Shibboleth 有两个主要组件:IDP (身份验证程序)和SP (服务提供程序)。IDP 为服务(service)提供用户信息,SP 收集用户信息保护资源。典型的应用场景是,使用Web 浏览器访问受保护资源,IDP 对用户身份进行验证,然后才能访问资源。设置IDP 和SP 实现这个应用场景步骤:用户访问受保护资源→SP 确定IDP 并发出身份验证请求→IDP 对用户进行身份验证→IDP 返回响应给SP→SP 创建一个新的
用户会话→返回到受保护的资源。
3
单点登录系统的设计与实现
3.1加载SAML 元数据
元数据是指为SP 或IDP 提供的便于两者通信的配
置数据,元数据保存在xml 文件中。Shibboleth 当前采用了OASIS 的元数据标准SAML 2.0(Security Assertion Markup Language)。
在安装IDP 时,IDP 生成了初始的IDP 元数据,并
保存在安装目录下的l 文件中。可以根据需要修改这个元数据文件。
在安装了SP 后,需要在SP 的配置文件l 中设置生成SP 元数据的有关信息。例如,如下的代码设置了生成SP 元数据的位置、是否签名和签名或加密的密钥和证书。
<Handler type="MetadataGenerator"Location="/
Metadata"signing="true"/>
<CredentialResolver type="File"use="signing"
key="sp-signing-key.pem"certificate="sp-signing-cert.pem"/>
<CredentialResolver type="File"use="encryption"
key="sp-encrypt-key.pem"certificate="sp-encrypt-cert.pem"/>
设置完成并启动SP 后,可以通过访问sp.ex⁃/Shibboleth.sso/Metadata,用SP 生成初始的SP 元数据。
基金项目:惠州经济职业技术学院科研课题“基于shibboleth 的单点登录系统的研究”(2018LXB04)。作者简介:李娜(1979-),女,讲师,硕士,研究方
向:人工智能。收稿日期:2019-04-10
基于Shibboleth 的单点登录系统设计与实现
李娜,高科华,罗海钊
(惠州经济职业技术学院,广东惠州516057)
web端登录
要:单点登录系统的设计涉及到资源共享和信息安全这两个重要问题。对单点登录系统Shibboleth 进行了一些研究,设计了一个单点登录系统,并将开源教学平台OpenOLAT 和一个示例应用Demo 纳入受保护的资源,实现了在一个登录界面登录后就可以访问这两个应用。关键词:Shibboleth 系统;单点登录;资源共享;信息安全
12
在IDP的配置文件l中,需要加载SP的元数据。在SP的配置文件l 中,需要加载IDP的元数据。
3.2设置身份认证
IDP的身份认证实现是基于Spring Web Flow的。IDP的安装目录中的子目录conf/authn/中包含了身份认证的通用设置和特定身份认证机制的专有设置。shibboleth 支持的身份认证机制有:Password、RemoteUser、Remo⁃teUserInternal、X509、X509Internal、SPNEGO/Kerberos、IPAddress、External、Duo、Multi-Factor、Function。可以根据实际部署环境选择身份认证机制,也可以创建自定义的身份认证机制。可以在conf/authn/general-authn. xml中设置采用何种身份认证方式。Password是通过Web表单收集用户账号、密码的身份认证方式,大多数应用都是采用这种方式。Pass⁃word支持3种后端实现:LDAP、JAAS和Kerberos,也可以自定义后端实现方式。可以在conf/l中设置Password身份认证选项,例如,采用什么后端实现方式,Web表单用于收集用户账号、密码的域名称等。
3.3设置属性解析和属性过滤策略
每个应用都有很多与用户有关的属性,除了用户账号、密码以外,还有用户的角、权限等。这些属性是集中存储还是在每个应用中单独存储各有优缺点。需要综合考虑各种因素做出选择。Shibboleth的属性解析和属性过滤为解决这个问题提供了一种解决方案。
属性解析的目的是指定如何构造属性集合,并在发送给受保护的应用程序前进行封装。属性解析使得用户在访问受保护应用时具有某些属性,因此具有访问受保护应用的特定功能。可以在l文件中设置属性解析。
属性过滤发生在属性解析和属性编码之间,属性过滤选择向SP释放哪些属性,可以向不同的SP释放不同的属性。可以在l文件中设置属性过滤策略。
属性解析和属性过滤策略的配置文件attribute-re⁃l和l中用到了idp.properties中定义的一些特性。
3.4定制登录页面
一般来说,需要定制登录页面,登录页面使用Web 表单收集用户账号和密码,完成基于密码的身份认证。基于密码的身份认证供选择的后端实现方式有3种: LDAP、JAAS和Kerberos。可以在配置文件authn/pass⁃l中选择采用后端实现方式。视图
层由Spring Web Flow处理,可以采用多种视图层技术。Shibboleth IDP默认支持Velocity和JSP。Shibboleth IDP 的安装目录中views目录是Velocity模板文件存放的目录。Shibboleth已经提供了Velocity模板,可以根据需要修改这些Velocity模板,定制自己的登录页面。也可以采用JSP技术,实现自己的登录页面。如果要使用JSP,必须移除views/login.vm或者重命名这个文件,否则将优先采用Velocity模板技术。JSP文件应该放在Shibboleth IDP的安装目录的子目录edit-webapp/WEB-INF/jsp中,并且修改dist/webapp/l文件以便确定采用JSP技术。用bin/build.bat文件重建Shibboleth IDP的WAR文件。
4结语
Shibboleth是一个功能强大的、灵活的单点登录系统解决方案,不仅可以基于Shibboleth开发单个组织内部的单点登录系统,而且可以开发跨组织的单点登录系统。如何开发跨组织的单点登录系统是需要进一步研究的课题。
参考文献
[1]林满山,郭荷清.单点登录技术的现状及发展[J].
计算机应用,2004,24(6):248-250. [2]张禹,陆慧梅,向勇.基于Shibboleth的在线实验
平台多资源访问认证[J].计算机应用研究,2017, 34(3):903-906.
[3]池亚平,王艳,王慧丽,李欣.基于等级的电子政
务云跨域访问控制技术[J].计算机应用,2016, 36(2):402-407.
[4]陈世平,薛明娣,王鑫.Shibboleth架构在跨域企业
信息共享业务中的应用[J].计算机应用研究, 2010,(15).
[5]彭伟,沈富可.校际统一身份认证及资源共享技术
研究[J].微型电脑应用,2007,23(10):
47-49.
13
2019.07

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。