基于SOA的统一身份认证服务技术研究与实现
目 录
1. 系统特点 1
2. 主要功能 1
3. 实现 1
4. 统一身份认证 2
4.1 IDS功能概述 2
4.2 IDS的结构 3
4.3 IDS的特点 4
1. 系统特点
权限管理已经被很多公司做过无数遍了,这个系统的特点是:
(1)适合于企业内部拥有多个相互独立的信息系统(B/S,C/S都支持),支持单点登录
企业内部用户都由AD进行统一管理。各个信息系统以AD用户识别当前使用者,也就是采用集成身份验证。
(2)采用SOA的设计思想,将权限管理作为一个通用的服务平台,支持在一个权限管理界面中管理多个信息系统的角色和权限。
(3)基于ASP.NET的开发平台,复用了ASP.NET的用户权限管理的部分代码。
2. 主要功能
(1)用户管理。
虽然AD统一管理用户,但不是每个AD用户都是可以使用一个业务系统的。需要判断用户是否是某个业务系统的有效用户。
(2)角色管理。
(3)权限管理。
将权限赋予角色,用户加入角色后,得到需要的权限。
(4)用户认证。
确认用户是否是某个业务系统的合法用户。
(5)个性化信息存储。
(6)权限验证。
分为功能权限和数据权限验证。
3. 实现
(1)AD统一管理用户。
(2)建立一个ASP.NET网站,进行用户用户、权限管理,提供web service作为服务接口。
(3)其它业务系统采用Windows集成身份验证,通过web service进行用户身份和权限验证。
SecurityAdapter具体实现web service对外接口。
利用ASP.NET的用户角色管理的接口和数据库,通过自己定制的MembershipProvider来实现用户,角色的数据存储。通过自定义的ProfileProvider来实现个性化数据的存储。
利用Enterpise Library的security模块的接口,实现权限的管理,功能权限和数据权限的验证。

图1 web service实现
4. 统一身份认证
统一身份认证系统(IDS)基于SOA的架构,实现组织机构及人员信息存储,给应用系统提供用户登录、登录检查、会话保持、登录用户信息获取、SSO(单点登录)等功能。
IDS采用JAVA语言开发,利用Web Service作为数据传递和接口调用的桥梁,符合SOA的架构,系统扩展能力强,能够跨平台地与各种应用系统交互。
4.1 IDS功能概述
统一用户管理系统(IDS),实现网上应用系统的用户、角色和组织机构统一化管理,实现各种应用系统间跨域的单点登录和单点退出和统一的身份认证功能,用户登录到一个系统后,再转入到其他应用系统时不需要再次登录,简化了用户的操作,也保证了同一用户在不同的应用系统中身份的一致性。

图2 统一身份认证示意图
如图2所示,IDS通过WebService对外发布认证服务,实现了平台的无关性,能与各种主机、各种应用系统对接。另外,IDS还提供了一套标准的接口,保证的IDS与各种应用系统之间对接的易操作性。
IDS的主要功能如下:
(1)用户管理:实现用户与组织创建、删除、维护与同步等功能;
(2)用户认证:通过SOA服务,支持第三方认证系统;
(3)单点登录:共享多应用系统之间的用户认证信息,实现在多个应用系统间自由切换;
(4)分级管理:实现管理功能的分散,支持对用户、组织等管理功能的分级委托;
(5)权限管理: 系统提供了统一的,可以扩展的权限管理及接口,支持第三方应用系统通过接口获取用户权限。
(6)会话管理:查看、浏览与检索用户登录情况,管理员可以在线强制用户退出当前的应用登录;
(7)支持Windows、Linux、Solaris等操作系统;支持Tomcat、WebLogic、WebSphere等应用服务器;支持SQL Server等数据库系统。
4.2 IDS的结构
统一身份认证通过统一管理不同应用体系身份存贮方式、统一认证的方式,使同一用户在所有应用系统中的身份一致,应用程序不必关心身份的认证过程。
从结构上来看,统一身份认证系统由统一身份认证管理模块、统一身份认证服务器、身份信息存贮服务器三大部分组成。
其中统一身份认证管理模块由管理工具和管理服务组成,实现用户组管理、用户管理;管理工具实现界面操作,并把操作数据递交给管理服务器,管理服务器在修改存贮服务器中的内容。
统一身份认证服务器向应用程序提供统一的Webservice认证服务。它接收应用程序传递过来的用户名和密码,验证通过后把用户的认证令牌返回给应用程序。
身份存储服务器存储身份、权限数据。其中身份存储服务器可以选择关系型数据库、LDAP目录、AD等。另外可以将CA发放的数字证书存储在身份存储服务器。
如图3所示:

图3 认证结构
4.3 IDS的特点
(1)方便实用
实现单点登录(SSO)。用户一次登录后,就可以依靠认证令牌在不同系统之间切换。
IDS所有的管理功能都是基于页面实现的,管理员只要通过浏览器即可完成管理工作。
提出了分级管理员的概念,使管理大量用户变成了可能。
(2)跨平台
IDS的实现基于SOA架构。
接口采用SOAP XML标准,可跨平台与多种类型的应用系统对接。
(3)支持多种身份存在方式
支持通用关系型数据库
LDAP目录
Microsoft Active Directory(AD)
(4)安全可靠
系统能够集成成熟的认证体系:CA,可以保证交易和企业内部活动中的身份不可抵赖,用户签名无法伪造。
系统在数据传输过程中,支持HTTPS方式的数据加密传输,阻止数据被监听、分析。
系统能够定义管理多种权限级别策略。