1、统一认证与单点登录系统产品需求规格说明书文件标识: BUPT-SSO-RD-PRS当前版本: 0.1作 者:文件状态: 草稿 正式发布 正在修改 完成日期: 2012-06-02机构图标北京邮电大学统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 2 of 版 本 历 史版本/状态 作者 参与者 起止日期 备注0.1 刘润峰 2012-05-312012-06-04统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 3 of 目 录 统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 4 of 0 文档介绍0
2、.1 文档目的此文档用于描述统一认证与单点登录系统的产品需求,用于指导设计与开发人员进行系统设计与实现。0.2 文档范围本文档将对系统的所有功能性需求进行消息的描述,同时约定非功能性以及如何与第三方系统进行交互。0.3 读者对象本文档主要面向一下读者:1. 系统设计人员2. 系统开发与测试人员3. 系统监管人员4. 产品甲方管理人员0.4 参考文档 凯 文 斯 信 息 技 术 有 限 公 司 单 点 登 录 及 统 一 用 户 技 术 方 案 V1.00.5 术语与缩写解释缩写、术语 解 释SSO 全称 Single Sign On,单点登录统一认证与单点登录系统, 产品需求规格说明书 北京邮
3、电大学,2012 Page 6 of 统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 7 of 1 产品介绍产品全名统一认证与单点登录系统 (以下简称系统) ,英文名称 SSO。SSO 是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。此系统是与“凯文斯信息技术有限公司” (以下简称凯文斯)进行合作,由我方独立进行研发。2 产品面向的用户群体此系统主要面向企事业单位以及社会组织,最终实现的软件系统将交由凯文斯方进行使用。3 产
4、品应当遵循的标准或规范无4 产品范围系统最终包含统一用户管理、统一认证、单点登录三个部分,最终应用到基于 BS 框架的各种应用系统中。系统将采用BS 方式进行实现。5 产品中的角色角色名称 职责描述系统管理员 负责配置和维护系统功能统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 8 of HR 管理员 负责管理用户信息等普通用户 使用系统中提供的用户自助服务6 产品的功能性需求6.1 功能性需求分类功能类别 子功能外部系统信息管理外部系统管理外部系统集成配置用户管理控制台用户自助管理用户管理统一用户管理组织结构管理组织结构管理外部系统组织结构管理授权管理权限管理
5、鉴权管理集成管理 外部系统集成6.1.1 产品形态一级节点 二级节点 三级节点 所属子系统 备注外部系统外部系统管理外部系统配置统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 9 of 用户管理用户信息管理注册申请管理组织结构统一组织结构管理外部系统组织结构权限管理用户组管理角色管理角色授权6.2 外部系统管理外部系统管理用于对使用本系统的外部系统进行统一管理,例如包括外部系统注册、外部系统单点登录配置等,只有经过注册的外部系统才能够使用本系统的相关功能。6.2.1 外部系统注册提供外部系统基本信息的管理,所有需要使用本系统的外部系统都需要在本系统进行注册。外部
6、系统对象参考如下:1. 基本类信息a) 外部系统编码作为外部系统的唯一性标识使用b) 外部系统名称统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 10 of 可读的文本组成,用于界面显示、用户选择等c) 外部系统描述用于对外部系统进行详细性描述2. 业务类信息此类信息主要用于本系统对外部系统的管控a) IP 地址信息(可选)标识外部系统的服务器地址,本系统将只针对从本地址请求的单点登录进行处理,其他情况将为非法请求b) SSO 标识用于实现单点登录的服务标识,用于实现单点登录流程3. 辅助类信息此类信息没有实际的业务意义,但有助于管理员对外部系统进行管理a) 隶
7、属组织存储外部系统运行维护的组织b) 联系人c) 联系电话可以存在多个d) 地址e) 电子邮件4. 其他信息a) 测试标记位用于指定此外部系统是否是测试用外部系统,如果是,则不会提供实际业务,仅在测试环境下有效系统提供外部系统的基础增、删、改、查功能,以及导出、导入等功能。统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 11 of 6.2.2 外部系统集成配置外部系统集成配置用于针对外部系统的各种集成功能进行相应的配置,主要分为以下方面:1. 统一用户管理2. 统一组织结构管理3. 单点登录有关具体内容请参考后面相关部分功能的集成描述。6.3 用户管理用户管理部
8、分提供统一的用户管理系统。6.3.1 用户管理控制台6.3.1.1 用户信息管 理用户管理控制台功能为本系统的管理员提供,对系统中所有的用户信息进行一体化管理,包括以下功能:1. 用户添加2. 用户信息修改3. 用户删除4. 用户查询、检索5. 用户调动修改用户隶属的组织结构6. 用户禁用7. 用户启用8. 密码重置9. 用户注册申请审批统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 12 of 针对通过用户自助服务提交的申请进行审批。用户对象包括以下属性:1. 基础类信息a) 用户代码用于登录系统使用b) 用户名称用户的可读名称2. 业务类信息a) 用户来源标
9、识用户的来源,可以有两类来源:被系统注册、外部系统导入3. 辅助类信息a) 性别b) 年龄c) 固定电话d) 移动电话e) 证件类型f) 证件号码g) 联系地址h) 4. 认证类信息a) 用户密码用于用户登录系统b) 最后登录地址c) 最后登录时间5. 其他信息统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 13 of 6.3.1.2 用户申请管 理用户申请管理针对用户通过自助服务提交的用户注册申请进行管理,管理员可以在这里进行申请的审批操作,具体包括:1. 申请查询与显示2. 审批通过3. 审批不通过6.3.2 用户自助服务用户自助服务是为系统用户提供的快捷服
10、务,具体包括以下功能:1. 用户信息修改2. 用户密码修改3. 用户注册用户提交注册申请后,将由管理员在用户管理控制台中进行申请审批6.3.3 统一用户管理统一用户管理是指将本系统与所有外部系统的用户信息进行一体化管理。6.3.3.1 用户接口为实现统一用户管理,本系统需要提供合适的外部访问接口便于实现本系统与外部系统的用户信息交互。用户交互的操作如下:1. 用户访问接口此接口用于提供外部系统访问本系统内部用户信息的入口支持依据用户代码、名称等信息的过滤条件查询。2. 用户管理接口具有较高权限的外部访问接口,仅会对部分重要的外部系统开放3. 用户信息同步接口统一认证与单点登录系统, 产品需求规
11、格说明书 北京邮电大学,2012 Page 14 of 在本系统与外部系统之间进行用户信息同步通信方式:1. 基于中间件的通信基于凯文斯现有中间件产品提供信息通信接口2. Web Service基于 Web Service 技术实现通信接口6.3.3.2 外部系统用 户接口此接口适用于外部系统存在独立的用户管理系统,并且不易将其改造成统一用户管理的情形下,此时本系统为其提供同一用户与外部系统用户的关系管理,同时未提供单点登录也会外部系统登录用户凭证的管理。外部系统用户接口的组成与用户接口类似,但其中需要对同一用户与外部系统用户中需要提供关系管理。6.4 组织结构管理本系统将提供两种方式的组织结
12、构管理,分别为:1. 统一组织结构管理2. 独立组织结构管理最终形成 1+N 方式的组织结构管理模式。统一组织结构管理是指本系统与外部系统的组织结构是一体的,系统提供本系统与外部系统之间的组织结构同步;独立组织结构管理是指本系统提供外部系统组织结构的一个映像,对于每个外部系统都提供一个独立的组织结构映像,本系统内一般仅提供查看功能,所有的组织结构修改都由同步接口进行。对于每个外部系统都需要设置器组织结构管理模式,是统一还是对立。统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 15 of 对于用户与组织结构之间的关系,确定如下:1. 用户与每套组织结构中的关系是独
13、立的2. 用户对于一套组织结构只能够隶属于一个组织系统中提供两个功能节点用以实现不同的组织结构管理。1. 组织结构管理组织结构管理对应统一组织结构管理,即为管理模式中的 1。组织结构为多层不限层级的树状管理模型。2. 外部系统组织结构管理外部系统组织结构管理对应独立组织结构管理,管理模式为首先在所有独立组织结构管理模式的外部系统中选择一个,然后显示其组织结构组织结构同步接口两种管理模式下的组织结构同步接口是一致的,不同之处仅仅是在不同外部系统进行同步时,将依据外部系统设定的组织结构管理模式的不同对应本系统中的统一组织结构数据还是独立组织结构数据。6.5 权限管理本系统的权限管理仅限于本系统内部
14、使用,不需要为外部系统提供统一授权管理。权限管理系统采用了经典的 RBAC 权限模型,并在其基础 上进行一定的修改。统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 16 of 用户用户组角色功能N1NNNN图 -1 权限管理模型在当前模型中,具有以下元素:1. 用户2. 用户组3. 角色4. 功能系统中功能包括节点和节点内操作两种具体形式,其中节点是指每一个能够打开的页面,操作是指节点内具体的操作按键(如增加、修改、删除等)他们之间的关系为:1. 用户与用户组多对一的关系,一个用户只能够属于一个用户组,一个用户组中可以有多个用户。2. 用户组与角色多对多关系3.
15、 角色与功能多对多关系统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 17 of 用户管理用户组管理角色管理认证过程 鉴权过程功能管理( 软件建模 )登陆审计用户认证管理 用户授权管理授权管理用户审计操作审计审计信息管理图 -2 权限管理系统-模块组成权限管理系统分为三大部分:1. 用户认证管理管理用户认证相关的内容,包括a) 用户管理管理用户信息b) 用户组管理管理用户组信息c) 认证过程实现用户认证流程2. 用户授权管理管理预授权相关的内容,包括a) 角色管理管理角色信息b) 授权管理统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Pa
16、ge 18 of 为角色收取功能权限c) 鉴权过程实现用户权限鉴别过程3. 用户审计记录用户的系统痕迹,包括a) 登录审计记录用户登录系统、登出系统信息b) 操作审计记录用户系统中主要操作的信息c) 审计信息管理查看已记录的用户审计信息,包括登陆审计信息与操作审计信息。6.5.1 统一角色管理系统可选地提供统一角色管理。统一角色管理是指在多个系统中进行角色的同步。用于暂时此方面的需求不是很明确,所以本系统中仅提供单层的角色管理模型。6.6 单点登录单点登录存在多种实现形式,为了提供更高的兼容性,本系统将以多种方式提供单点登录模式。统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,20
17、12 Page 19 of 6.6.1 基于 Httpheader 单点登录场景:用户在不同的应用系统中拥有相同的用户名,通过平台登录后,平台会携带着用户的用户名信息或者信任凭据登录后段的应用系统。应用系统通过改造获取请求中携带的用户名信息或者信任凭据并直接登录应用系统1、 用户通过平台访问应用2、 用户的请求被平台拦截,并要求认证3、 认证通过后平台将用户信息或者信任凭据放入httpheader中并向后端应用提交4、 后端应用自动解析凭据或用户信息并直接进入登录系统,不需要再次认证应用系统改造逻辑:用户登录后,应用先看请求是否存在认证凭据(用户信息或者信任凭据) ,如果有则读取凭证进行认证逻
18、辑,如果没有则返回登录页面要求重新登录统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 20 of 6.6.2 基于表单代填的方式单点登录场景:用户在不同的应用系统中有不同的用户名(账号)和密码。通过统一用户平台和数据同步把这些账号和密码同步到认证平台中的用户映射表中,该表记录了用户和账号的对应关系和密码。当用户登录通过平台登录后端的应用时,平台将该用户对应得账号名和密码带填并提交实现单点登录。1. 用户通过平台访问应用2. 用户的请求被平台拦截,并要求认证3. 认证通过后平台到映射表中查找用户要访问系统的用户名和密码4. 平台自动提交用户名和密码单点登录应用系统
19、6.6.3 基于 CAS单点登录6.6.3.1 CAS 组成从结构体系看, CAS 包含两部分: 1. CAS Server CAS Server 负责完成对用户的认证工作, CAS Server 需要独立部署,有不止一种 CAS Server 的实现,Yale CAS Server 和 ESUP CAS Server 都是很不错的选择。CAS Server 会处理用户名/密码等凭证(Credentials) ,它可能会到数据库检索一条用户帐统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 21 of 号信息,也可能在 XML 文件中 检索用户密码,对这种方式,C
20、AS 均提供一种灵活但统一的接口/实现分离的方式,CAS 究竟是用何种认证方式,跟 CAS 协议是分离的,也就是,这个认证的实现细节可以自己定制和扩展。2. CAS Client CAS Client 负责部署 在客户端(注意,我是指 Web 应用) 。原则上,CAS Client 的部署意味着,当有对本地Web 应用的受保护资源的访问请求,并且需要对 请求方进行身份认证,Web 应用不再接受任何的用户名密码等类似的 Credentials,而是重定向到 CAS Server 进行认证。 目前,CAS Client 支持非常多的客户端,包括Java、Net 、ISAPI、Php、Perl、uP
21、ort al、Acegi、Ruby、VBScript 等客户端,几乎可以这样说,CAS 协议 能够适合任 何语言编写的客户端应用。6.6.3.2 CAS 协议CAS 是通 过 TGT(Ticket Granting Ticket)来获取 ST(Service Ticket),通过 ST 来访问服务,而 CAS 也有对应 TGT,ST 的实体,而且他们在保护 TGT的方法上虽然有所区别,但是,最终都可以实现这样一个目的免去多次登录的麻烦。下面,我们看看 CAS 的基本协议框架:统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 22 of 图 -3 CAS 基本协议框
22、架上图是一个最基础的 CAS 协议,CAS Client 以 Filter 方式保护 Web应用的受保护资源,过滤从客户端过来的每一个 Web请求;同时,CAS Client 会分析 HTTP 请求中是否包请求Service Ticket(上图中的 Ticket),如果没有,则说明该用 户是没有经过认证的;于是,CAS Client 会重定向用户请求到CAS Server(Step 2) 。Step 3 是用户认证过程,如果用户提供了正确的Credentials,CAS Server 会产生一个随机的 Service Ticket;然后,缓存该 Ticket,并且重定向用户到 CAS Clie
23、nt(附带刚才产生的 Service Ticket, Service Ticket 是不可以伪造的) ;最后,Step 5 和 Step 6 是 CAS Client 和 CAS Server 之间完成了一个对用户的身份核实,用Ticket 查到 Username,因为 Ticket 是 CAS Server 产生的,因此,所以 CAS Server 的判断是毋庸置疑的。 该协议完成了一个很简单的任务,就是 User(david.turing)打开 IE,直接访问 helloservice应用,它被立即重定向到 CAS Server 进行认证,User 可能感觉到浏览器在 helloservc
24、ie和casserver之间重定向,但 User是看不到,CAS Client 和 CAS Server 相互间的Service Ticket 核实(Valid ation)过程。当 CAS Server 告知 CAS Client 用户 Service Ticket 对应确凿身份,CAS Client 才会对当前 Request 的用户进行服务。统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 23 of 6.6.3.3 CAS 实现 SSO当我们的 Web 时代还处于初级阶段的时候,SSO 是通过共享 cookies来实现。比如,下面三个域名要做 SSO:如果
25、通过 CAS 来集成这三个应用,那么,这三个域名都要做一些域名映射,因为是同一个域,所以每个站点都能够共享基于 cas.org 的 cookies。这种方法原始,不灵活而且有不少安全隐患,已经被抛弃了。CAS 可以 很简单的实 现跨域的 SSO,因为,单点被控制在 CAS Server,用户最有价值的TGC-Cookie 只是跟 CAS Server 相关,CAS Server 就只有一个,因此,解决了 cookies不能跨域的问题。回到 CAS的基础协议 图,当 Step3 完成之后,CAS Server 会向 User 发送一个 Ticket granting cookie(TGC)给 U
26、ser的浏览器,这个 Cookie 就类似 Kerberos 的TGT,下次当用户被Helloservice2 重定向到 CAS Server 的时候,CAS Server 会主动 Get 到这个TGC cookie,然后做下面的事情:1. 如果 User 的持有 TGC 且其还 没失效,那么就走基础协议图的Step4 ,达到了 SSO6.6.4 总结对于使用何种单点登录方式,需要对外部系统进行调研,采用何种方式比较合适。由于集成环境比较复杂,所以对于不同外部系统可以设计使用何种单点登录方式。对于表单代填方式进行集成的外部系统,需要针对外部系统提供用户信息映射,具体将统一认证与单点登录系统,
27、产品需求规格说明书 北京邮电大学,2012 Page 24 of 在用户管理中提供。7 产品的非功能性需求7.1.1 性能需求1、系统设计支撑用户数:员工数 * 1.32、高峰时支持最大主要单功能点并发用户数:员工数 * 15%3、支持同时在线用户数(按照 50估算):员工数 * 50%4、出现登陆页面时间:不超过 2 秒钟5、输入用户以及口令登陆系统时间:平均时间不超过 5 秒钟7.1.2 接口需求该系统与外界系统系统进行交互的协议必须是业界比较通用的协议。如ODBC/JDBC,LDAP,XML 等。统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 25 of
28、8 附录 B:需求确认提示: 需求确认规 程请参见 SPP-PROC-RM,主要分两步 :( 1)需求评审, ( 2)需求承诺。对需求的评 审应当采用 “正式技术评 审方式 ”,将产生一份 “需求评审报 告 ”,规程请参见SPP-PROC-TR。在获取责任 人( Stakeholders)对需求的承 诺之前,该 产品需求规 格说明书 必须先通过 需求评审。需求评审报告摘要需求文档 输入名称,标识符,版本,作者,完成日期, 需求评审报告 输入名称,标识符,评审日期, 评审结论 工作成果合格, “无需修改”或者“需要轻微修改但不必再审核 ”。 工作成果基本合格,需要作少量的修改,之后通过审核即可。 工作成果不合格,需要作比较大的修改,之后必须重新对其评审 。评审意见评审小组成员 输入评审小 组成员需求承诺需求文档 输入名称,标识符,版本,作者,完成日期客户承诺承诺 统一认证与单点登录系统, 产品需求规格说明书 北京邮电大学,2012 Page 26 of 签字,日期项目经理承诺承诺 签字,日期