第三章 统一身份认证平台
1 概述
随着计算机技术和网络技术的迅速发展,高校校园网的规模急剧扩大,校园网用户数量、校园网的技术应用水平得到不断提高。与此同时,近几年来,高校网络环境下各种管理信息系统不断普及,如教务管理系统、科研管理系统、财务管理系统等,这些管理系统已覆盖了学校的大部分管理工作,成为学校的教学、管理和科研等日常工作中的必不可缺少重要环节,为全校教师、学生提供全校性的网络资源信息服务。
但是这些管理信息系统绝大多数由不同管理部门负责,建立之初并没有考虑统一的数据共享和用户身份认证管理问题,因而造成了:绝大多数管理系统数据不能共享,各系统有其自身的用户管理和认证方式,用户要面对不同的登录界面,记忆不同的帐户信息,系统管理员不得不维护多个系统中的用户信息;因学生毕业、教职工离职、IT 服务商测试等原因出现的“幽灵帐号”问题无法得到解决,存在严重安全隐患;没有统一的授权管理功能,因权限控制不严造成信息泄漏等问题,因此建立一个合理、开放和基于标准的内部网应用平台,统一用户管理、统一资源管理、统一访问控制的身份认证系统,是完全必要的,而且是必需的。师生通过统一信息门户平台实现单点登录,在整体上避免重复投资。
建设重点包括几个方面:
用户身份集中的验证、用户资料的集中存储和管理、访问权限的集中控制和管理。具体包括目录服务、单点登录服务、角色管理、授权管理、认证服务、应用认证接口包、数据维护与日志管理等。在平台建设的性能上要考虑数据安全性、传输安全性、高可靠性、系统容错性、可审计性,具有良好的可扩展性。
1.1 建设原则
标准化
采用基于LDAP标准的目录服务器存储身份数据,符合LDAP v3版本标准。
可靠性
系统提供数据定时、异地冗余备份功能,采用合适的保护策略以保证系统的可靠性。
系统容错性
系统要具有高度的容错性,以保证系统正常运行。
传输安全性
系统传输安全极其重要,所以对用户登录信息进行加密传输,保证数据能在单点登录服务器与客户端、WEB代理之间进行安全通信,保证数据传输的安全性,保证所采用的加密技术不可逆。
接口开放
认证接口要具有开放性,支持不同开发语言,如:.net、ASP、Java、c/c++、PHP、Radius 、COM等接口;支持不同应用服务器平台实现的应用系统的认证集成方式。
可扩展性
系统平台要具有可扩展性,支持学校后续的系统能平滑过渡和升级。
1.2 建设目标
统一身份认证平台提出的目的就是要解决不同的网络应用系统用户名和口令不统一的问题,期望提供统一的授权机制及一套方便、安全的口令认证方法,让用户只要一套用户名和口令就可以使用校园网络上他有权使用的所有应用系统。
以目录服务和认证服务为基础的建立统一用户管理、授权管理和身份认证体系统,从而将用户信息统一存储,进行身份认证和应用访问控制,将系统的用户认证方式进行规范。
用户经统一应用门户登录后,从应用系统进入到另外一个应用时,系统平台依据用户已有的角色与权限,完成对用户的一次性身份认证,提供该用户相对应的认证信息和基于其权限的功能模块和工具,这就需要在数字化校园中满足用户的授权需求,提高应用系统的安全性及用户使用的方便性,实现全校所有应用的单点登录。
学校的工作人员因管理和其他方面的要求,随时会进行人员的调动、调级、调职、离休等变动甚至发生组织机构的变动,这样就引起了户的身份和权限也会随之变动,系统会根据用户的身份和权限在各系统之间协调同步,减少应用系统的开发和维护成本,同时能变更情况实时反映在认证系统中,从而在各个应用系统的认证中体现出来。
根据不同业务的安全需求,满足不同业务不同安全级别的要求,建设多样化的认证方式,减少应用系统的开发和维护成本。
提供足够开放和完整的认证集成方式,以保证本期应用系统和学校后续应用系统能够实现和身份认证平台的集成,让用户获得完整的单点登录体验;
用户认证数据要求与LDAP、RADIUS等服务器对接,认证系统能够提供数据库支持,认证用户数要支持10万以上用户数要求。
1.3 建设的内容
系统建立统一的集中身份库,对学校所有用户提供集中和统一存储、管理,用户身份的存储采用目录服务(LDAP)来进行。
建立全校的统一认证中心CAS(Central Authentication Service),根据各个不同应用系统的认证方式,提供各种灵活的认证机制;
在数字化校园信息系统集中身份库基础上,提供基于单点登录(SSO)的解决方案,使得用户只需要通过一次身份认证过程就可以访问具有权限范围内的所有信息资源;
在集中身份库的基础上,通过身份管理技术实现身份库与各个现有业务应用系统实现用户信息的自动同步处理等功能;
通过认证系统,用户对信息资源的访问受到合理的管控,提高了系统的安全性和服务的针对性。包括用户管理、机构管理、资源管理、日志管理等。
统一身份认证能满足如下的要求:
海量的基于LDAP目录服务器的用户数据存储和管理功能,支持百万量级用户。
统一身份认证平台所管理的用户数据包括在校用户与校友两大类,并将逐年快速增长,需集中有效的将用户身份信息存储、管理起来,长期使用;与此同时,需建立起集中安全策略的存储、处理、设置和管理机制。
高效的支持SSO(单点登录)的高性能身份认证服务
支持集中用户认证、授权机制,实现单点登录,用户从任意一个应用登录认证后,便可以访问其它的被授权的应用而无需再次登录认证;实现中,必须支持基于JAAS、SAML的实现,而不仅仅是基于Cookie的实现。
开放的支持不同开发语言、不同应用服务器平台实现的业务系统的认证集成方式。
信息化校园校内应用环境复杂,将面临不同的网络环境、硬件平台、操作系统、软件架构、开发语言、运行模式,统一身份认证平台必须能够开放的支持应用集成服务,所有安全服务,除了加密、解密服务以外,其它安全服务必须对应用开发人员透明。通过利用统一身份认证集中身份库与门户系统的结合,从而为整个网络平台提供集中的管理、安全认证机制,保证各个平台的统一。
2 功能实现
2.1 系统架构
统一身份认证平台包含如下的组件:
数据库和OpenLdap目录服务:用户数据库和目录服务器同时存储用户集中身份库,并且数据库的用户身份数据与目录服务器的用户身份数据保持同步,必要时可以通过简单的配置来选择数据库还是目录服务器;
基于中心认证服务CAS(Central Authentication Service );
面向师生的用户WEB服务。
2.2 目录服务
目录服务与现有系统集成在一起,充当一个集中化的身份信息库,用于将学生、教师和其他人员的信息集中存储。目录服务主要是为所有高校用户身份提供集中化的存储和目录服务;支持目录数据的多主复制,能够在多个目录服务器之间进行实时数据同步。
2.2.1 用户数据模型
学校的师生因管理和其他方面的要求,随时会进行人员的调动、调级、调职、离休等变动甚至发生组织机构的变动,这样就引起了户的身份和权限也会随之变动,系统会根据用户的身份和权限在各系统之间协调同步,减少应用系统的开发和维护成本,同时能变更情况实时反映在认证系统中,从而在各个应用系统的认证中体现出来。所以这就要求系统对用户数据模型的授权要灵活,以满足学校的需求,统一身份认证管理系统中的数据模型包括一下内容:
用户帐号:用户的帐户信息;
组织:用于管理用户和资源以及其它对象的逻辑容器;
能力:一些管理员被授予了特殊的权利,可以执行哪些功能,比如口令管理员就是可以管理用户的口令。
管理帐户:对统一身份管理系统具有管理员的功能,可以进行分级管理;
2.2.2 用户身份数据库OpenLdap
简单的概括,目录服务就是按照树状信息组织模式,实现信息管理和服务接口的一种方法。目录服务系统一般由两部分组成:一种拥有描述数据规划的分布式数据库和访问与处理数据库有关的详细的访问协议。目录服务与关系型数据库不同的是,目录不支持批量更新所需要的事务处理功能,目录一般只执行简单的更新操作,适合于进行大量数据的检索;目录具有广泛复制信息的能力,从而在缩短响应时间的同时,提高了可用性和可靠性。
管理信息系统需要构建能够用于整个系统的目录服务,作为用户身份管理的基础架构。此处的目录变成了身份管理中心,其中集成并同步多个系统的身份信息和内容。如下图:
平台在OpenLdap Server目录服务的基础上,构建用户集中身份库,并利用身份管理技术,从而实现将原有采用“非目录化”的应用系统与现有用户集中身份库进行自动的双向交互,可以在不改变现有系统的框架基础上进行实施,实现身份库与现有应用系统的无缝结合。
2.2.3 统一身份库实名制
实行全校统一身份库实名制管理,构建整个管理信息系统的用户身份库。通过构建用户集中身份库,集成门户、教学、教务、科研、办公自动化、信息发布等应用中的用户,实现用户帐号在各系统间的实时同步。
2.3 组织及用户管理
为了使其管理更为有效,我们按照学校本身的行政管理和组织结构进行分层管理。统一身份认证平台的用户管理的组织结构构建将按照的学校的组织结构进行,组织包括了组织单元(即部门)、区域(即外地分支机构),也实现了管理权限相对独立的安全管理域。
2.4角色管理
学校师生可以在统一身份认证平台中定义用户角色,不同用户角色决定了他们可以分别享有哪些服务。在信息系统的建设中,用户和角色之间的关系是需要不断维护的,每种角色都有各自的权限定义,如果一个用户被赋予一个角色之后,那么这个用户就拥有了这个角色权限之内所定义的权限;当这个角色的权限定义更改之后,那么这个角色内所有被赋予所有用户也会自动拥有新的权限。
管理员只需要对数量有限的角色维护就可以了,这种功能可以大大地简化系统管理员对用户权限的管理工作,显著地减少了系统管理人员的工作量。
2.5 身份同步管理
目录服务器与统一身份同步管理系统相结合统一地管理用户帐户的主数据。用户身份通过统一身份管理系统通过组织、组、角色、用户等几层进行管理,通过委托管理员还可以实现分级管理的功能。
管理系统管理,并管理用户在各个应用系统中的生命周期,如添加、删除、修改等。某个应用系统中用户信息的变化通过统一身份管理系统的身份同步工具可以自动发现,利用这一功能来保持和其它相应应用中用户信息同步。统一的用户身份库就如同网络中的HUB,它一方面作为国子数字化校园平台统一身份资料库,另一方面负责与已有系统中的身份信息实现同步。
统一身份同步管理系统和各应用系统的用户身份集成是怎么来实现的呢?国子统一身份同步公布管理系统是通过CAS客户端来实现的,CAS提供了多种客户端代理,如关系型数据库表客户端代理、LDAP客户端代理等。由客户端代理实现集中地管理用户信息和各应用系统中用户信息的一对一或一对多的映射关系,然后根据映射关系同步用户信息。比如,某一业务系统添加新用户,系统将根据国子数字化校园平台对用户管理所定制的业务规则,在统一身份库中同步用户信息,同时,根据规则更新到其他相关子系统中。另一个方法是可以采用国子数据中心平台的数据交换功能,实现用户权威数据源到中央身份库的用户同步,从中央身份库到业务系统的数据同步。
2.6 认证方法及负载均衡
2.6.1 认证方法
国子软件身份认证支持多种方法认证, 统一身份认证的逻辑图如下:
根据学校的实际情况,支持以下的多种认证方式:
LDAP:利用外部的目录服务系统作为本身的认证机制,是否允许进入门户系统的依据就是看是否通过了外部目录服务的认证。这样就很好的利用了原有的认证系统,减少投资。
提供认证系统集成开发的WebService:用于集成第三方的认证产品。
提供认证系统集成开发的API:用于集成第三方的认证产品,包括Java API、ASP .NET API、C/C++ API、PHP API。
2.6.2 中心认证服务CAS
对以上的多种认证方式,系统平台将建立学校的中心认证服务CAS3.0(Central Authentication Service),CAS的作用就是使分布在一个学校内部各种不同异构系统的认证工作集中在一起,然后通过一个公用的认证系统,统一管理和验证用户的身份。CAS上认证过的用户会获得CAS颁发的一个证书,以这个证书,就可以在承认此证书的各个系统上自由访问,无需再次的登录认证。
这样,用户经过统一认证中心认证后,可以实现认证的漫游、单点登入SSO、单点退出等操作。认证的票据(ticket)可以在认证服务器端和用户客户端分别用Session和Cookie来保存其认证信息。当浏览器正常关闭后,客户认证新的Cookie即失效。如下图:
2.6.3 负载均衡
通过认证接口的多服务器支持设计,实现软件层的双机负载均衡服务,提供大并发下的高可用性保障。为了提高统一身份认证凭的可用性,需要实现多机集群负载均衡的能力,提高其可靠性和硬件设备的使用率。即要保证认证服务器的认证信息(ticket)的同步,所以通过多机集群实现负载均衡只要保持多服务器间的Session的共享即可,所以采用多机集群方案,利用硬件负载均衡LDAP、交换机、中间件应用服务器的集群功能解决单点登录故障和负载均衡,提高了认证平台的可靠性和高性能。
2.7 统一认证、单点登录(SSO)
门户系统与统一认证、授权和单点登录系统是紧密集成的一套访问控制平台,采用的是开放的架构,支持可插接的用户认证模块和当前主流安全架构,可供.net 、ASP 、Java、PHP等开发平台调用来实现统一认证。其基于LDAP目录服务器,实现用户的身份认证、策略管理与服务、应用资源的访问控制。提供多种认证手段,实现了用户只需认证一次,就可以无须再次登录地访问其做授权可以访问的业务系统。
2.7.1国子统一身份认证的流程
CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。用户在第 3 步中输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 Service Ticket,并缓存以待将来验证,之后系统自动重定向到 Service 所在地址,并为客户端浏览器设置一个 Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新产生的 Ticket 过后,在第 5,6 步中与 CAS Server 进行身份合适,以确保 Service Ticket 的合法性。
在该协议中,所有与 CAS 的交互均采用 SSL 协议,确保,ST 和 TGC 的安全性。协议工作过程中会有 2 次重定向的过程,但是 CAS Client 与 CAS Server 之间进行 Ticket 验证的过程对于用户是透明的。
2.8 授权管理与资源访问控制
不同角色的用户登录平台进入自己的门户,实现单点登录,在各自的权限范围内登录相应的系统和获取相应的资源支持,该平台支持多种权限管理方式,统一授权与分级授权;单独用户授权、按角色(用户组)授权等。
下图为用户组管理示意图:
下图为用户管理示意图:
对于能集中到统一授权的系统,通过数据集成方法(WebService)把用户的授权功能代码、读写权、数据范围、读写字段等权限管理数据集中到统一身份认证、权限管理平台上,可以集中授权。
统一授权策略将基于统一资源访问控制,基于SOA架构的技术标准,对任何一个功能都按WEB Service、URL资源功能服务 、WEB剪辑 集成服务、Iframe集成服务 、RSS集成服务、API集成服务 、Portlets集成服务等提供服务,能够提供细粒度的资源访问控制,包括对网页、文件、数据范围、数据库字段级的访问控制。
也可以分级授权,统一身份认证与授权中心可以授权用户可以访问的应用系统,由应用系统来具体授权用户的详细权限,如下图所示:对不同应用系统授予不同用户的权限,并根据需要可以进行身份转换。
对学校来时说可以采用统一授权与分级授权相结合的方式来实施。
2.9 安全审计与日志管理
可以让管理员对资源访问进行安全审计和配置,这样能详尽地记录用户的操作日志,便于将来的日志审计和排查安全隐患,保障系统在出现问题时可以回溯跟踪,提高了系统的可靠性。
操作日志主要要包括操作人、操作的表名、操作人的IP地址、操作时间、操作的记录号(记录唯一性)、操作人的MAC地址等(如上图所示),管理员可以对该日志进行查询、统计和审计。
2.10 数据维护及备份恢复
为了减少管理员的工作量,提高工作效率,保证数据的安全可靠,系统实现组织机构、角色、用户及权限等数据的批量导入、导出。同时提供综合查询功能和统计分析功能,还能完成批量用户密码初始化。
为了实现同步,采用认证服务器群实现认证高可用性的集群,而且每台服务器的目录服务器是独立并保持同步,即任何一台认证服务器的目录数据发生变化都会同步到其他相关认证服务器的目录服务器。如果有其中的一个单点故障问题,可以马上利用其他认证服务器的数据进行用户数据和认证的恢复。
3 各应用系统的统一身份实现
3.1 用户身份库的管理及同步实现
目前中国城市大学建立起办公自动化系统、财务系统、固定资产管理系统、收费管理系统等多个业务系统。通过用户身份权威数据源建立起全校的中央身份库,教师和学生将只用一个登录ID,同时可以与一卡通的身份识别作映射,存放在目录服务器中(Open Ldap),仅仅允许权威数据源管理系统对用户相关数据项的增加、更改、删除。对用户身份可以灵活的进行分组,如:Teacher、student、manager等,如下图所示:
通过统一身份管理系统的关系型数据库表代理、LDAP代理、数据中心平台的数据交换功能,建立用户身份权威数据源和用户身份数据库、目录服务器关联,这样就可以根据用户身份的变化进行捕捉并同步到中央身份库,进而触发到其他相关的业务系统,以此来保证用户身份同步。
在系统平台中,用户身份是通过中央身份库来进行集中管理的,用户涉及到其他相关应用系统的注册处理的,可以通过用户注册申请,应用系统管理部门和统一身份认证中心分别批准后,则授权可以访问其他相关应用系统,也实现了用户对其他相关应用系统的身份同步;当然,也可以由统一身份认证与授权平台直接授权用户能访问相关的应用系统,来实现用户对相关应用系统的身份注册。
对现有的业务系统也要实现统一身份认证,对现有的业务系统的认证加以改造,调用学校统一的认证系统,即如果通过学校的认证,则可以跳过业务系统自己的认证,用户从学校统一信息门户认证后不需要再认证便可以进入对该用户有权限的业务系统。
3.2 应用系统认证集成
统一身份认证平台把要集成的应用系统进行配置,内容如下图所示。