1、基于 Shibboleth 的联邦身份管理研究 1李崴 , (中国科学院国家科学图书馆武汉分馆,武汉 430071)摘 要:本文介绍了基于 Shibboleth 的联邦身份管理模型及其运行机制。该模型具有平台无关性,松耦合性和信息安全性,能够对合作机构的相关服务进行有效整合,并能够保障用户隐私,从而满足服务提供者和用户的需求。关键词:shibboleth SAML 联邦身份管理 单点登陆Research on Federated Identity Management Based on ShibbolethLi Wei( The Wuhan Branch of the National Sci
2、ence Library, CAS,Wuhan 430071,China )Abstract:In this paper, an Federated Identity Management model based on Shibboleth is proposed. This model is platform independent, coupled loosely, security. This model can support related services to carry out effective cooperation and protect users privacy, m
3、eeting the requirements of users and service providers.Keywords:shibboleth SAML;federated identity management;single sign-on0 引 言随着数字图书馆面向用户的知识服务不断深化,越来越多的应用系统(如 Web 服务、门户和集成化应用等)彼此链接。这些系统各自使用独立的认证授权体系,分别维护着不同的安全策略和用户信息库。独立的认证机制导致了业务关系的相对孤立,同时,用户被迫在不同的应用下使用不同身份和口令多次登录,从而导致了孤立的用户体验。对于服务提供方和用户来说,迫切需要一
4、种便捷、安全的身份认证机制来简化登录多个系统的繁琐过程。消除这种访问孤立和业务孤立的关键是建立一种标准化的、跨管理域的联邦身份认证与授权机制。基于 Shibboleth 的联邦身份认证是目前比较流行的图书馆多系统业务整合的解决方案之一。该模式通过联合认证和授权的机制克服了传统认证方式的不足,允许机构自己拥有并能控制主体身份数据,并能够以结构化的、受控的方式与协作机构共享这些数据。本文提出基于 Shibboleth 的联邦身份认证机制,能同时满足图书馆多项业务联合服务和用户单点登录的需求,并能有效保障认证强度,保护用户隐私。作者简介:李崴(1973-) ,男,湖北武汉人,副研究馆员,研究方向为数
5、字图书馆技术、网络与信息安全;1 联邦身份认证随着越来越多的图书馆网络应用开始考虑如何在保护应用资源的前提下扩大应用的使用范围,身份认证技术由此被广泛采纳。早期应用系统单独维护用户库进行身份认证。这种方式在图书馆网络应用建设初期较常见。随着应用的不断整合,出现了单一身份认证技术。它采用同一个用户库为多项网络应用提供认证服务,解决了多个应用系统身份统一管理的问题,降低了用户管理成本。但认证仅限于同一用户库,无法解决跨机构的网络应用。联邦身份管理(Federated Identity Management,FIM )提供了一个简单的、松耦合的模型,用于跨管理域的身份认证和授权管理。在这种模式中,各
6、应用系统自行负责本系统用户身份的认证,同时基于开放标准来鉴别其他系统的信任关系,从而建立起可安全交换身份信息的联邦关系。只要用户被联邦内的(也就是可信任的)某应用所认证,该用户就获得联邦内其他机构的信任(不必再次登陆) 。这种机制可以大大地简化机构内和机构间的用户身份管理工作,使认证和授权数据跨越组织界限。以中国科学院国家科学图书馆(简称国科图)为例,建有随易通、学位论文、机构仓储等多个应用;与国科图相关的有高校图书馆系统、中科院 ARP 系统、商业数据库等系统。这些系统彼此应用上是独立的,跨地区和跨机构的,且需要自己维护用户信息库,难以形成联合服务,也很难通过集中认证模式来解决单点登陆问题。
7、上述这些应用系统可形成一个身份联邦,基于对相互联邦身份的信任,可以共享用户身份信息和策略数据,从而将各应用系统耦合在一起,形成联合的服务应用。如某所用户同时具备中科院“学位论文” 、“机构仓储”和 Elsevier 数据库的访问权限,在传统模式下他必须分别以不同身份和口令登陆上述 3 个网站来获取资料,而在联邦模式下,用户登录其中一个系统后,无需再次登陆即可访问其他两个网站。联邦身份管理把身份认证看作是各类网络应用的基础设施,以中间件的形式为网络应用提供统一的身份认证支持,应用系统开发者和提供者不需要再考虑身份认证和用户管理这个问题,把身份认证工作完全交给身份认证中间件去完成。它以技术手段把原
8、本属于多个管理机构的多个用户库统一起来。用户只要提供在某个机构的身份就可以访问多个机构中的应用,在更大范围内实现统一身份认证和单点登录。2 Shibboleth 与 SAML 2.1 SAML 标准SAML 即安全断言标记语言(Security Assertion Markup Language) 。它是一个基于 XML 的标准,用于在不同的安全域(security domain)之间交换认证和授权数据。由于 OASIS、自由联盟和 Shibboleth 各个系统最初对 SAML 有相应程度的扩展,因此存在多个不兼容的协议。随着 Shibboleth 和 Liberty 在跨域认证、授权、单点
9、登录等方面的影响越来越大,OASIS、自由联盟和 Shibboleth 于是联手开发出新的单一标准 SAML 2.0,消除了多协议复杂性,促进并拓展了联邦身份认证更广范围的应用。SAML 主要由三个部分组成:主体(Principals ) ,即用户;服务提供者(Service Providers,以下简称SP) ,即各种应用系统,是为用户提供应用或 web 服务的实体;身份提供者(Identity Providers,以下简称IdP) ,即身份认证服务器,负责认证用户。SAML 提供如下三种类型的断言(Assertion):(1)认证断言(Authentication Assertion) ,
10、描述用户身份验证信息,如认证机构、方式、有效期等;认证断言一般是由 IdP 发出,用于证明已登录用户的身份。(2)属性断言(Attribute Assertion) ,定义了某主体具有的属性信息,如主体的所属用户组、访问级别、信用等级等。(3)授权决定断言(Authorization Decision Assertion) ,决定是否允许用户对特定资源的访问以及访问权限。在认证过程中,SP 和 IDP 交换信息, IdP 负责创建包含用户身份的断言,然后安全地将这个断言发送给 SP。SP 负责在让用户访问之前验证断言的有效性。SAML 建立了一种独立于协议和平台的验证和授权交换机制,且能够用于
11、集中式的、分散式的以及联合式的部署场景。这样使得 SAML 具有以下特点:它提供单次登陆身份验证的功能,可以大幅度地减少站点之间地复制安全性和身份验证信息地需求;SAML 可令不同类型的安全服务系统之间实现交互;SAML 不依赖于它所交互的任何系统,每个系统都可为用户的身份验证和授权建立自己的策略。2.2 Shibboleth 项目Shibboleth 是一个用于解决对共享资源的机构成员进行认证和授权的体系,属于 Internet2 项目中的一部分。它是一个使用标准语言描述(SAML)的体系结构和策略框架,支持安全 Web 资源和服务的共享。Shibboleth 从 1999 年开始开发。于
12、2003 年公布了 1.0 版本,之后又相继推出一些版本,目前最新的是 2.0版本。Shibboleth 作为机构间的统一认证管理协议,已经在全球多个国家得到很好的应用部署。同时,网格计算界也采纳了 Shibboleth,并将其视作一种关键的安全技术。在美国(InCommon) 、瑞士(SWITCHaai ) 、芬兰(HAKA) 、英国(SDSS)已经建立了使用 Shibboleth 的应用联盟,在中国,Shibboleth 也受到广泛关注。Shibboleth 可适用于多种平台,如 window、linux 等。该项目采用模块化结构,极易扩展,同时使用通用的安全标准,如安全标记语言 SAML
13、、公共密钥基础设施 PKI 和 X.509。Shibboleth 定义了一种机构间的合作架构。在用户访问某个受 Shibboleth 保护的网络应用的时候,应用通过中间件和机构联邦向用户所在机构申请认证该用户身份,并根据认证结果决定是否允许用户访问。认证通过后,共享服务将根据服务自身需求向 IdP 提交属性请求,并根据返回的用户属性决定用户可以享有的访问权限。3 Shibboleth 的运行机制3.1 功能组件Shibboleth 功能组件包括 identity provider,service provider 以及可选择的 Where are you from (WAYF) 服务和各种交换
14、的子组件。认证提供方(identity provider,IdP )即通常所说的源站点,维护用户的凭证和属性(即用户的信息和权限) 。IdP 主要包括: 认证权威(Authentication Authority,AA):给其它组件发认证断言,它与 IdP 的认证服务整合在一起。 单点登录服务(the SSO handler):由 SSO 发起在 IdP 的认证过程,并在最后把用户指向内部站点的传输服务(Inter-Site Transfer Service) ,该传输服务完成 HTTP 对于浏览器/POST 和浏览器/ Artifact profiles 的应答确认。 助诊解析服务(Arti
15、fact Resolution Service,ARS ):IdP 给 SP 发送一个助诊文件代替实际的断言,然后 SP 把助诊文件通过反向信道发还给 IdP 的助诊解析服务,IdP 再把所需的认证断言发送给SP。 属性权威(attribute authority):处理属性认证请求,进行认证和授权。 目录服务。 一个本地验证机制。服务提供方(Service Provider,SP )即认证请求方,就是一般理解的业务系统,该部分管理着被保护的资源,用户对于资源的访问基于服务提供方从认证提供方获得的认证断言。在部署 Shibboleth 系统时,在服务提供方主要包括: 断言调用服务(Assert
16、ion Consumer Service,ACS):处理 SSO 返回的认证断言,发起一个属性请求。在 SP 建立一个安全上下文,重定向用户到目标资源。 属性请求者(Attribute Requester,AR):一旦一个安全上下文在 SP 上建立,在 SP 上的 AR 和IdP 的 AA 管理一个反向信道交换属性,也就是 SP 和 IdP 绕过浏览器直接进行交互。 资源管理器(resource manager,RM ) 。WAYF 服务(Where Are You From)是 Shibboleth 系统中独立于 SP 和 IdP 之外的一项可选服务,SP 可以使用 WAYF 服务来确定用户
17、首选的 IdP。3.2 认证机制W A Y FI d e n t i t y P r o v i d e rS e r v e r P r o v i d e rW e b S i t e1A C S32H S567U s e r D BC r e d e n t i a l s4A RH a n d l eH a n d l e8H a n d l e9A AA t t r i b u t e s1 0A t t r i b u t e sResourceManagerResource图 1 Shibboleth 工作机制1. 用户打开浏览器访问 Service Provider 网站,访问
18、受保护的页面,2. SP 网站检查到用户没有登录,那么将用户请求的页面地址( URL)附加在 IdP 的 URI 之后,并将用户的浏览器重定向到 IdP 网站的 WAYF 服务;否则 SP 网站接受用户请求。3. WAYF 服务从 SP 网站传递来的用户请求,为用户提供可供选择的 IdP 清单。4. 用户提交首选的 IdP。5. WAYF 服务向用户指定的 IdP 的 HS(handle service)传递用户请求。6. HS 接到请求后,向用户发出登录表单。7. 用户输入用户名和口令并提交登录请求。8. 根据提交的用户名和口令,HS 调用用户数据库(或目录服务)进行身份验证,如果验证失败,
19、向用户响应登录失败页面; 如果登录成功, HS 会向用户响应一个自动提交表单,将生成的 Handle 提交到 ACS 服务, SP 网站接收到用户提交的 Handle,并将 Handle 传递给 AR 服务。9. AR 服务校验 Handle 是否合法,如果验证合法,AR 把 handle 提交给 IDP 的 AA 管理服务器,发出属性请求,否则抛出验证异常,10. AA 管理服务器负责向 SP 提供属性,AR 接收并从中读取用户信息,传递给资源管理服务,资源管理服务根据接收的权限信息来决定是否把用户转向目标资源。在实际应用中,不同的访问场景,同一个系统可分别扮演不同的角色。很多应用服务器根据
20、所处角色的不同,可以既是 SP 又是 IdP。4 Shibboleth 联邦身份认证技术特点Shibboleth 以各机构现有的用户库和身份认证机制为基础,具有良好的用户体验,登陆一次就可以访问联邦范围内的其他资源,同时为原有系统用户提供更大范围网络资源的使用权限,用户使用习惯改动不大,原有用户身份不变;Shibboleth 联邦身份认证机制简化了用户身份管理的复杂度,以中间件的形式整合原有应用系统,将有效降低管理成本和投资改造成本,可通过联邦机制扩大网络应用范围、增进应用共享。Shibboleth 提供主动的隐私管理。在认证过程中,提供给 SP 的往往并非用户姓名、年龄等确切信息,而是关于用
21、户身份属性的断言,如请求学位论文时提供用户的属性断言为某研究所博士生(并非真实姓名)。这使得用户的信息只保存在某个用户信赖的机构中,最大限度地保证了用户的隐私,有效地减少了身份盗窃和诈骗等问题。Shibboleth 基于属性的访问控制,强化了内部的信任机制,特别适用于机构间协作和虚拟机构,将打破传统机构间的壁垒,带动一大批的新型网络应用。基于 Shibboleth,可以对用户个性化信息进行管理和分发,为个性化服务提供基础支持。同时从安全和可靠性考虑,Shibboleth 还可与银行系统交互,支持数字图书馆的用户费用在线支付管理。5 小结Shibboleth 联邦身份管理机制有效屏蔽了不同平台架
22、构的特殊性;避免了用户信息的同步更新等复杂的实现。这种简单的、松耦合的分布式认证模式具有良好的适用性和安全性,能方便地实现单点登陆功能,带来良好的用户体验,同时也实现了机构间的联合服务,有效降低管理工作成本。可以看出,基于Shibboleth 的联邦身份认证管理机制提供了一个具有标准化、稳定性、可扩展性的安全管理框架,是目前图书馆统一认证系统较好的解决方案。参考文献:1 Assertions and protocols for the OASIS security assertion markup language(SAML) v2.0 EB/OL. http:/docs.oasis-open
23、.org/security/saml/v2.0/,2008-4-20.2 Security and privacy considerations for the OASIS security assertion markup language (SAML) V2.0 EB/OL. http:/docs.oasis-open.org/security/saml/v2.0/,2008-4-20.3 Shin D, Ahn G, Shenoy P. Ensuring information assurance in federated identity managementC. Proceeding
24、 of IEEE International Performance Computing and Communications Conference,2004:821-826.4 梁昌勇,李劳.基于 SAML 的信任移植模型J. 微计算机信息, 2008,24(3):162-164.5 王洪生,袁捷,曹春生,董媛媛,基于 SAML 的身份联盟建立的研究J.计算机工程与设计,2007,28(21):5122-5124.6 Shibboleth 2 Development Documentation.https:/spaces.internet2.edu/display/SHIB2/DevelopmentDocs, 2008-9-205 危蓉,廖振松,黄学鹏,Shibboleth 口令的研究J . 微型计算机, 2005 (21) : 15217.作者姓名:李崴单位:中国科学院国家科学图书馆武汉分馆电话:13995653371传真:027-87199202 转李崴通讯地址:武汉市小洪山西区#25邮编:430071
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。