2016/3/15 16:41:21 数字校园系统建设中单点登录设计方案

本文结合北京体育学院信息化建设的实践,探讨以校园网为基础的教育管理信息化问题。并重点介绍LDAP 和 Session、Cookie 技术在数字首体院的建设中是如何实现单点登录的。

一、数字校园系统建设的实际意义

在数字校园的建设中,所有高校都面临以下问题:

(1)各业务系统独立存在 ,形成了多个 “信息孤岛 ”,没有充分发挥网络和计算机的作用;

(2)越来越多的信息需要在网上发布 ,各种应用系统的增加使得网络管理变得越来越复杂,同时带来更多的安全威胁和挑战;

(3)需要记忆的用户名和密码越来越多,已经成为学生和老师的负担,对于有些不常登录的系统(例如我院的教务网上成绩录入系统),每到学期末就有大量老师给网络中心打电话询问用户名和密码;

(4)各个应用系统中用户的基本信息经常存在差异 ,不能够统一数据的入口,也不能使数据实现“谁产生,谁维护”,保证不了数据的准确性和及时更新。针对上述问题,我们设计了数字首体院系统,实现了统一身份认证方案。

统一身份的设计

二、数字首体院系统统一身份认证方案

在数字首体院系统统一身份认证方案中, 我们通过LDAP 存储用户信息和权限管理中的角色 ,LDAP 具有很好的跨平台性和简单、高效的数据访问机制,建设统一的LDAP,可以实现各个应用的统一认证 。

后台建立共享数据库,拥有数字化校园的所有用户信息。 在数字首体院的身份认证方案中,我们实现了 SSO。

三、轻量级目录访问协议(LDAP)

LDAP即轻量级目录访问协议,直接运行于 TCP/IP或者其他可靠传输协议之上, 是目录服务的前端访问协议。 LDAP 的基本工作方式为 LDAP 客户端向 LDAP 服务器发送请求,服务器发回应答信息。 LDAP 协议定义的便是客户机与服务器之间请求、应答的格式和约定,即 LDAP客户机访问服务器的前端访问协议。

LDAP 是基于 访问 控制 策略 语句 来实 现 访 问 控 制的,这不同于现有的关系型数据库系统和应用系统。后者是通过基于访问控制列表(ACL,Access Control Lists)来实现访问控制,在通过目录认证后,对目录的访问操作权限按 ACL 的定义来分配,无论是基于组模式或角色模式,都摆脱不了这种限制。 对于 LDAP,用户数据管理和访问标识是一体的,应用不需要关心访问控制的实现。

四、单点登录(SSO)

SSO(Single Sign-on)是这样一种机制 ,用户认证和授权的单一行为能够允许一个用户访问所有他具有访问许可的计算机和系统,不需要输入多个口令。 SSO 减少了因人为错误和系统重要组件故障而导致的登录障碍。所有的身份认证服务都需要一个有效的 SSO Token验证 HTTP 请求。 其他希望使用 SSO 功能的应用系统必须使用 SSO Token 验证用户身份。

通过 SSO API,其他的应用系统能取得 Token 及其他与用户授权相关的信息。一旦用户通过授权,这个信息就用于决定是否能够访问特定的资源。 SSO API 也能够用于创建、销毁 SSO Token、检测 Token 的有效性或 Token 的事件。

SSO API 的目的是让其他的服务或应用系统可以使用 SSO 功能。使用这些 API,用户身份和相关的授权信息就能够被使用。使用这些信息的应用系统就能决定是否允许用户访问受保护的资源。

五、Session 和 Cookie 在身份认证中的应用

Session 和 Cookie 已广泛应用于 Web 应用中 ,Cookie的作用就是为了解决 HTTP 协议无状态的缺陷和问题,而后来出现的 Session 机制则是又一种在客户端与服务器之间保持状态的解决方案。 保存 Session ID 可以采用Cookie, 这样在交互过程中浏览器可以自动地按照规则把这个标识发回给服务器, 所以通过二者可以实现身份认证。

六、单点登录的实现

用户访问数字首体院系统的过程可以通过下面两个流程图来进行说明。

 首次登录的流程图

 单点登录流程图

(1)Client 要访问一种受保护的 Web 资源时 ,首先发出访问请求;

(2)Agent 截取用户请求 ,并且查看 SSO Token 是否存在;

(3)若 SSO Token 不存在 ,Agent 将请求重定向到身份服务器中的 Session 服务器;

(4)Client 重定向到 Session 服务器 ;

(5)Session 服务器收到重定向请求,生成一个会话令牌(此时令牌处于无效状态即 invalid state)和一个Cookie,并将它们传给认证服务器中的 Authentication service;

(6)认证模块将会话令牌插入到 Cookie 中,发送Cookie给用户(Client),同时发送一个登录页面让用户填写个人登录信息;

(7)用户根据登录页面格式填写用户登录信息,然后提交给认证模块;

(8)认证模块将用户认证信息传送给认证提供者LDAP服务器来认证;

(9)认证提供者将验证结果通知身份服务器中的认证模块;

(10)于是 ,认证模块将会话令牌设置为有效(valid)状态,并将会话令牌和授权凭证同时送给用户;

(11) 用户用携带有 SSO Token 的访问请求 ,继续访问先前的 Web 资源,Agent 截取并检查用户请求, 发现SSO Token 存在;

(12)Agent 将用户的访问请求重定向到 Web 资源 ,意味着用户访问成功。

  访问其他资源流程如图

  访问资源流程图

用户在没有退出门户的情况下, 要求访问其他 Web资源的流程图

(1)Client 用携带有 SSO Token 的请求 , 请求访问另一种 Web 资源;

(2)Agent 截取并检查用户请求 ;

(3)发现 SSO Token 存在,接着将用户的访问请求重定向到要访问的 Web 资源,意味着用户访问成功。


 
QQ在线咨询
销售热线
0371-53302651