失效链接处理 |
浅谈Shibboleth和SAML的系统如何跨校统一身份认证 PDF 下载
本站整理下载:
相关截图:
主要内容:
浅浅谈谈Shibboleth和SAML的的系系统统如如何何跨跨校校统统一一身身份份认认证证 随着技术的发展,越来越多的大学、公司以及政府机构都通过网络对外提供资源、服务,并且彼此协作日益紧 密、信息共享日益频繁。例如,大学之间的“跨校选课”、“共享图书资源”等。因此简化这些业务中身份认证的流 程,同时做到安全高效成为迫切需要解决的问题。 1 Shibboleth简介 Shibboleth是一个针对SSO的开 源项目。Shibboleth项目主要应用在校园内Web资源共享,以及校园间的应用系统的用户身份联合认证。 Shibboleth主要针对分布式资源如何有效访问的问题。与其他系统的区别在于Shibboleth将认证模块放在客户 端,资源提供者只需进行少量的验证工作,极大地减 随着技术的发展,越来越多的大学、公司以及政府机构都通过网络对外提供资源、服务,并且彼此协作日益紧密、信息共 享日益频繁。例如,大学之间的“跨校选课”、“共享图书资源”等。因此简化这些业务中身份认证的流程,同时做到安全高效成 为迫切需要解决的问题。 1 Shibboleth简简介介 Shibboleth是一个针对SSO的开源项目。Shibboleth项目主要应用在校园内Web资源共享,以及校园间的应用系统的用户 身份联合认证。 Shibboleth主要针对分布式资源如何有效访问的问题。与其他系统的区别在于Shibboleth将认证模块放在客户端,资源提 供者只需进行少量的验证工作,极大地减轻了资源提供者的负担,简化了访问程序、提高了访问资源的效率、安全性得到了保 证。在系统扩展方面,Shibboleth采用了SAML规范,同时也在SAML上作了改进,保证了系统的可扩展性。 Shibboleth主要由3个部分组成: (1)Origin 对应Identity Provider(IdP),身份提供端。主要作用是向资源提供者提供用户的属性,以便使资源服务器根据其属性对操 作进行判决响应。 (2)Target 对应Resource/Service Provider,资源/服务提供端。主要作用是响应用户的资源请求,并向该用户所在的Origin查询用户 的属性,然后根据属性做出允许或拒绝访问资源的决策。 (3)WAYF WAYF是Where Are You From的首字母简称。SHIRE使用WAYF来进行大部分初始化工作。WAYF组件知道每一个Origin 端句柄服务器的名称和位置。其主要功能是将Origin端站点名称映射到HS信息上。WAYF的另一个作用是为用户查询HS并将 句柄发送给SHIRE。WAYF通过与用户打交道,询问“你从哪来”,用户输入组织名称,WAYF便在用户组织的名称与HS的URL 之间进行映射。 2 SAML简简介介 SAML即安全断言标记语言,英文全称是Security Assertion Markup Language。它是一个基于XML的标准,用于在不同 的安全域(security domain)之间交换认证和授权数据。在SAML标准定义了身份提供者(identity provider)和服务提供者(service provider),这两者构成了前面所说的不同的安全域。 SAML是OASIS组织安全服务技术委员会(Security Services Technical Committee)的产品。SAML将所有与检索、传输和共享安全信息相关的功能标准转化为以下形式[2]: (1)为用户提供XML安全信息格式,请求、传输信息的格式。 (2)定义这些消息与SOAP(Simple Object Access Protocol)等协议协作的方式。 (3)为像Web SSO(Single Sign-On)类似的常见用例定义精确的消息交换。 (4)支持多种隐私保护机制,包括在不披露用户身份的情况下确定用户属性的功能。 (5)详述在Unix、Microsoft Windows、X509、LDAP、DCE和XCML技术所提供的格式中处理身份信息的方法。 (6)提供系统的元数据机制,使得所有参与的系统能就所支持的SAML选项进行通信。 SAML的设计特别关注了灵活性,当遇到标准尚未涵盖的需求时,可以扩展。其所描述的环境包括3个角色,如图1所示,即 信任方(Service Provider)、断言方(Identity Provider)和主题(与身份信息相关的用户)。
SAML(Security Assertion Markup Language)是一个XML框架,也就是一组协议,可以用来传输安全声明。比如,两 台远程机器之间要通讯,为了保证安全,我们可以采用加密等措施,也可以采用SAML来传输,传输的数据以XML形式,符合 SAML规范,这样我们就可以不要求两台机器采用什么样的系统,只要求能理解SAML规范即可,显然比传统的方式更好。 SAML 规范是一组Schema 定义。可以这么说,在Web Service 领域,schema就是规范,在Java领域,API就是规范。 IdP与SP通过SAML消息传送用户的身份认证和属性等信息。SAML消息定义了2种重要的语句:(1)身份验证语句,关于 该主题在何时何地、使用何种身份进行过验证的报告。SAML提供了超过20种不同身份验证方法的详细定义。身份验证语句支 持SSO,其中IdP代表SP进行登录。(2)属性语句,包含了与主题有关的属性。属性语句中典型的属性是组和角色。 安全是所有Web项目在设计时都要考虑的一个重要因素。无论是选择最短口令,决定何时使用SSL加密HTTP会话,还是 通过自动登录cookie来识别用户,都经常要付出重大的设计努力,以保护用户的身份信息和他们可能存放于Web站点的其他资 料。糟糕的安全性可能带来公关灾难。当最终用户努力保持对其个人信息的控制时,他们要面临令人迷惑的隐私政策,需要牢 记众多站点的不同口令,以及遭遇“钓鱼式攻击”事件。在宏观层次上,数字身份引起了许多复杂的技术和社会问题,业界一些 团体如Liberty Alliance和IdentityGang都正试图通过开发新的技术标准来解决它们。在较小的规模上,可以使用一些工具来为 用户提供更好的安全性。请考虑口令管理问题。用户访问他们保存个人资料的Web站点,在可以存取他们的资料之前必须经 过验证。通过验证来鉴别用户,确保他们是所声称的用户。进行验证最简单方式是使用口令。然而,若每个站点都需要各自的 一套口令,用户将有难以控制的大量口令。 1998年微软首先尝试通过其Passport network提供该问题的全球解决方案。Passport使得任意Web站点使用用户提交给 Passport的个人资料(如用户名、地址、信用卡号)成为可能。Passport是单点登录(single sign-on,SSO)的第一次电子 商务尝试。它没有流行起来,部分原因是由于人们对系统封闭性的担心。然而,SSO的理念非常引人注目,许多开放标准和 商业计划都追随Passport其后。通过SSO,某个Web站点可以与其他站点共享用户身份信息。 SSO对于使用应用服务提供商 (Application Service Provider,ASP)软件服务的企业特别有用。ASP在自己的服务器上宿主应用程序,出售其访问权作为 服务。公司可以在它的标准目录服务器里管理自己的用户和口令,然后通过SSO授予用户访问ASP应用程序的权限。SSO允 许公司管理自己用户的信息,不必为每一员工维护多个用户账号。对用户来说,SSO的好处在于他们可以在多个应用程序中 使用一个用户名和口令,并且在应用程序之间切换时无需重新验证。SSO不仅仅用于Web应用程序,它可用于任何类型的应 用程序,只要有安全地传送身份信息的协议。这种通信方式的开放标准就是安全性断言标记语言(SAML)。 3 Shibboleth在在本本系系统统中中的的作作用用 (1)系统将基于Shibboleth的框架进行开发,但不完全使用Shibboleth,需要根据用户的实际需求对其进行改造。 (2)Shibboleth构成跨域统一身份认证系统的核心部分,包括IdP、SP和WAYF组成的整个跨域统一身份认证系统的架构。 (3)通过将Shibboleth的IdP组件与各个学校的统一身份认证系统集成,将身份数据的管理和身份凭据的认证交给各个学校 自身的统一身份认证系统。跨域认证中心只是作为跨域认证的索引,并不维护任何身份数据。 4 跨跨校校统统一一身身份份认认证证系系统统的的实实现现 4.1 跨跨校校统统一一身身份份认认证证系系统统设设计计 该身份认证系统可分为3个子系统,身份提供方IdP(Identity Provider)、服务提供方SP(Service Provider)和身份联盟中心 FC(Federation Centre)。这3个子系统在实现联盟认证时,工作原理与Shibboleth基本相同。下面从实现用户身份联盟认证的 角度介绍这3个子系统的结构、工作机制以及交互方式。 4.1.1 身身份份提提供供方方(IdP) IdP是负责认证用户身份和提供用户认证、属性信息的实体,它需要维护3个模块,即单点登录认证系统、数据库系统和 Shibboleth的IdP组件。 4.1.1.1 单单点点登登录录认认证证系系统统 单点登录认证系统(Single Sign-On Authentication System)是源组织的SSO认证系统,负责响应用户的身份认证请求并生 成SSO Token[4]。加入身份联盟的先决条件就是源组织已经可以实现统一身份认证,在此基础上,源组织无须对SSO认证系 统做出变动。目前使用较多SSO系统有SUN、Oracle、IBM、Microsoft等厂商推出的统一身份认证系统,身份联盟系统都将提 供很好的兼容。 4.1.1.2 认认证证数数据据库库和和用用户户属属性性数数据据库库 认证数据库(Authentication DB)是源组织SSO认证系统的一部分,为SSO提供认证数据并直接服务于单点登录认证系统。 用户属性数据库(User DB)主要为Shibboleth的IdP组件服务,它存储了身份联盟系统所需要的用户属性信息。 4.1.1.3 Shibboleth的IdP组组件件 Shibooleth的IdP组件主要工作单元分为句柄服务器HS(Handle Server)和属性中心AA(Attribute Authority)2个部分。 (1)句句柄柄服服务务器器(HS) 用户通过源组织的SSO认证后,HS根据用户浏览器中cookie值颁发身份联盟的认证句柄作为用户在联盟中的身份凭据。 获得认证句柄的过程既可以通过用户浏览器的Browser/POST和Browser/Artifact方式来实现,也可以通过SAML中的身份验证 断言(Authentication Assertion)来实现。SAML定义了<samlp:AuthenticationQuery或<samlp:AssertionIDReference>字段的
<samlp:Request>消息,通过它可以得到用户身份认证的断言(Assertion),从中获取句柄信息。用户获得句柄后就获得了访问 联盟中服务提供方的合法身份。
|