1 引 言
企业在信息化建设过程中,由于经常采用逐步信息化的方式,因此会造成企业内部各个应用系统的用户目录不完全兼容,各应用系统相互孤立,形成“信息孤岛”。信息孤岛的存在,使得信息系统用户需要做重复的登录。因此实际中,需要一个统一的用户登录管理系统平台,来实现用户统一身份验证。用户登录到某一应用系统(通常是门户站点,如办公自动化系统)后,当需要访问其他应用系统时,不必登录就可以直接进入应用系统。
单点登录系统平台采用统一的用户信息数据库,实现用户统一验证。从用户的角度只需进行一次登录就可实现全局访问;从管理员的角度,能够记录用户登录各个系统的日志信息,方便进行统计分析。
2 单点登录的实现原理
2.1 单点登录的一般模型
单点登录模型,一般由三部分构成,分别是:用户、身份提供者和服务提供者,如图1所示。
(1)用户是指通过浏览器来使用应用服务的个体。
(2)身份提供者是指对个体进行身份验证的服务提供者。
(3)服务提供者是指为用户进行应用服务的具体应用服务提供者。
单点登录的工作原理是:用户首先在身份提供者那里注册身份;当用户进行单点登录时,在身份提供者处登录,进行身份验证,由身份提供者为用户标记登录信息;当访问其他的服务提供者时,被访问的服务提供者首先直接与身份提供者进行交互,确定该用户是否已进行单点登录,从而确定允许该用户来访问自己提供的服务。
2.2 单点登录的重要概念
2.2.1 单点登录点
理想的情况是用户通过任何应用系统都能进行SSO(Single Sign-on),这对于基于Web的系统是可行的。这种单一的登录点在整个系统的设计中是惟一认证用户的地方,由登录点将SSO token(单点登录标志)(针对不同的C/S,B/S应用可能还需要传递用户名,口令)传递给应用系统,应用系统利用SSO token进行用户已认证的验证。将这个单一的登录点称为SSO Entry(单点登录点)。
2.2.2 对原有应用系统的修改
并不是任何系统都能够使用SSO,只有那些符合SSO规范,使用SSO API的应用系统才具有SSO的功能。因此,进行单点登录,需要修改已有的应用系统,屏蔽已有的应用系统的用户认证模块,使用单点登录系统提供的SSOAPI来验证用户,以及对用户的操作进行授权。
2.2.3 建立统一的认证权限信息库
建立统一的认证,权限存放库,进行认证与授权管理,将系统的认证、授权信息存贮结构与访问控制逻辑和应用的业务逻辑进行分离,使它们之间成为一种松散的耦合,便于系统的灵活管理。
2.3 单点登录的工作流程
单点登录有三个主体:使用Web浏览器的用户、服务提供者和登录服务器。登录服务器保存着用户的认证信息以及用户的个人信息,服务提供者在得到用户允许的前提下可以到登录服务器上获取用户个人信息。
单点登录协议流程如图2所示。
首先,当一个用户通过浏览器访问一个服务提供者时,如果该服务提供者需要验证用户的身份,就把该用户的浏览器重定向到登录服务器;登录服务器通过SSL连接为用户提供一个登录页面,用户进行登入;用户登录服务器后,被重定向回服务提供者,此时认证信息被包含在重定向消息中;服务提供者检验认证信息的真实性后,即可认为该用户成功登录。
3 单点登录系统的体系结构
单点登录系统平台主要由系统平台管理模块、应用系统代理模块、数据库三部分组成。
3.1 管理模块
单点登录系统平台的管理模块主要实现各种服务,主要包括:会话管理服务,日志审计服务,身份验证服务,授权服务。
会话管理服务 单点登录系统平台的基础服务。用户登录单点登录的门户站点后,会话状态通过会话管理服务来管理,实现单点登录;
日志审计服务 单点登录系统平台的辅助服务。日志审计实现对用户使用单点登录系统平台的详细日志,日志信息包括:登录时间、登录用户身份、登录应用系统、登录时使用的客户机IP地址和MAC地址等;
身份验证服务 单点登录系统平台的扩展服务,实现对用户身份的验证。身份验证的方式可以多样,不同的应用环境可能采用不同的验证方式,单点登录系统平台能够方便地与现有的身份验证方式兼容,也能进行扩展;
授权服务 单点登录的扩展服务,能够实现对某些应用系统的授权。不同的用户对同一应用系统的访问权限是不同的,在单点登录系统平台上,可以实现系统级的授权。
3.2 数据库模块
单点登录系统平台的数据库模块主要存储单点登录时的各种数据,主要包括:用户目录数据库、登录日志数据库等。
用户目录数据库 系统平台使用统一的用户目录数据库,集中进行管理。各个应用系统进行身份验证时,都使用这个集中的数据库。
登录日志数据库 系统平台能够对用户的身份验证行为进行日志记录,随时把握“何人何时以何种方式访问何种应用系统”。
3.3 应用系统代理模块
目前应用系统代理模块与单点登录系统平台进行通信,实现各应用系统与系统平台管理系统的连接。
4 单点登录系统的部署
4.1 单点登录系统的安全性要求
作为应用系统的基础平台,单点登录系统平台的安全性非常重要。可以采用以下的方法保证系统安全:
(1)内容安全。通过应用安全级别较高的加密算法,对存储的用户登录信息,包括用户登录名称、登录ID号码、电子数字证书等进行加密,保证即使系统管理员也无法获得或更改这些信息;
(2)传输安全。信息在传输的过程中,也有可能被窃听和篡改。对于B/S系统,采用HTTPS/SSL安全传输通道,保证信息在传输中的安全;对于C/S系统,应用业界标准的安全认证协议,在传输前进行双向认证,同时,对通信内容进行加密和散列,也能保证信息在传输中的安全;
(3)事后安全。在安全模型中,除了事前评估,事中控制外,还有事后的审计。单点登录平台提供完善的日志记录功能,日志内容包括登录时间、登录用户身份、登录的应用系统、登录时使用的客户机IP地址、计算机名和MAC地址等。
单点登录系统的安全结构如图3所示。
图3中,粗黑体标记出的“加密用户信息”、“日志数据库”、“安全传输通道(HTTPS等)”、“安全认证通道(挑战/相应协议等)”,都是单点登录平台采取的安全措施。
单点登录平台实现内容安全、传输安全和事后安全,保证了整个平台系统的立体安全。
单点登录平台能够详细记录用户使用单点登录平台的情况,包括登录时间、登录用户身份、登录的应用系统、登录时使用的客户机IP地址、计算机名和MAC地址等。同时,还提供图形化的日志查询工具,方便管理员进行统计分析和审计员进行监督审计。
4.2 单点登录系统的部署
单点登录系统平台通过向应用系统提供单点登录服务,实现单点登录。因此,单点登录系统平台部署与普通的应用系统部署不同。除了单点登录平台自身的部署外,支持单点登录的应用系统需要进行系统改造,系统改造以单点登录服务接口规范作为依据。
单点登录系统的部署的示意图如图4所示。白色的立方体表示应用系统。浅蓝色的立方体表示单点登录SSO平台。从图中可以看出:各个应用系统与SSOEntry发生联系。SSO Entry需要向应用系统传递SSO Token,用户名,口令,然后启动应用系统。
5 单点登录系统的应用
天津大港石化总厂建立了企业门户,企业门户统一管理多种企业应用,包括销售系统、检测系统、生产系统、合同系统、办公系统、人事系统、电子地图、邮件系统等。这些应用有的是采用B/S架构,有的是采用C/S架构,有的是企业内部应用通过企业局域网应用,有的是采用广域网,跨区域实现。
在确定单点登录系统设计时,确定的目标是:单点登录不能够修改任何现有B/S,C/S应用系统,这对目前SSO系统提出了技术方案与技术实施上的难题,目前普通单点登录系统一般难以克服这样的问题。根据与合作的技术开发与实施单位沟通,采用代理方式实现了单点登录。即现有应用系统的认证方式均不改变,通过单点登录系统获取用户名和密码,交给单点登录代理,由代理实现对现有系统的登录,这一实现方法在实际中被证明是切实可行的。