摘要:本文充分利用SOA架构松耦合的特点,通过规范统一网络接口实现业务系统整合,既提升系统安全性,又简化资源访问操作,具有重要的理论和现实意义。

统一身份认证旨在将分散在各个信息系统中的用户和权限资源进行统一集中管理,提升系统安全性,简化资源访问操作。各家金融机构的业务系统由于开发时期不同,支撑技术各不相同,系统环境彼此独立,统一身份认证体系需要面对跨平台、跨系统的巨大挑战。近年来,面向服务架构SOA(Service Oriented Architecture)技术为松散集成业务系统的统一身份认证体系构建创造了非常有利的条件。SOA通过业务需求将粗粒度的服务(应用组件)进行松散耦合,服务直接通过独立于硬件平台,操作系统和程序语言的接口或契约相互联系。构建基于SOA架构的统一身份认证体系为数据集中后业务系统身份认证难题提供了可行的解决方案。

1、目标与原则

系统建设目标为:以现有的不同时期的业务系统为服务对象,构建基于SOA架构,具有较强跨平台、跨系统的异构集成能力,能够提供集中统一、安全可靠身份认证服务的统一身份认证体系。

系统设计原则有以下三点:

1.安全原则。统一身份认证系统的安全措施必须从全局角度考虑,用户和权限信息并不只属于单个业务系统,而是涉及所有参与集中的业务系统,所以统一身份认证系统的安全等级应等同于所有参与集中的安全级别最高的业务系统。

2.稳定原则。统一身份认证系统能否稳定运行直接影响所有参与集中的业务系统是否能够正常使用。因此,统一身份认证系统应当具有高可用性,能够提供持续稳定的服务。通常,具有高可用性的系统至少应具备数据热备,双机热备等基本功能。

3.开放原则。统一身份认证系统需要跨越不同时期开发的业务系统,适应不同操作系统、程序语言,提供统一的身扮认证服务。这就要求统一身份认证系统具有非常强的开放性,能够提供适应不同业务系统的接入环境。

2、用户和权限统一管理

统一身份认证系统的主要特点就是用户和权限的统一标识、统一管理和统一认证。目录服务器是统一身份认证系统的核心,其通过部署轻量级的目录服务协议(Light weight Directory Access Protocol,LDAP)的基础软件,如在金融界广泛使用的IBM Tivoli Directory Server,对外提供基于LDAP的目录服务。LDAP之所以适用于金融机构用户和权限的管理,是因为它能将业务系统用户和权限信息以层次结构、面向对象的方式进行存储,非常适合查询而非读或更新。LDAP的这一性能非常契合金融机构业务系统用户相对稳定而登陆频繁的特点。

所有业务系统的用户和权限信息都由目录服务器来提供统一维护服务,相比功能单一的紧耦合用户认证方式,其为业务系统提供三种接入方式:Web Service接口、LDAP接口和数据库接口。通过绑定Web Service和LDAP接口,业务系统可以直接获得目录服务器对用户和权限信息的反馈,同时统一身份认证系统使用以上接口通过绑定关联帐户的方式实现业务系统间的互信,即金融机构内或金融机构间不同业务系统的互信和互通。

 3、分布式SOA架构应用系统集中

数据集中需要业务系统集中作为支持,业务系统的集中不仅是物理服务器的集中,更是系统数据流的集中。如何将功能不同的业务系统进行有效整合,做到统一认证,统一管理,是统一身份认证系统核心关键技术之一。

基于SOA架构松耦合的理念,银行业务系统的集中并不需要对已有系统的大规模改造整合,而是由SOA网络规范统一网络接口,如图1所示。银行业务系统只需实现对规范接口的有效支持,从SOA网络的角度,业务系统即抽象为服务。目录服务器提供的基于LDAP的服务本身也在分布式SOA网络中抽象为身份认证服务,任何业务系统需要使用身份认证时,就如同调用内部服务一样调用SOA网络提供的服务接口,获得身份认证服务。

与传统身份认证服务相比,基于分布式SOA架构的统一身份认证克服了用户数据冗余,它将分散在业务系统中的用户数据进行了集中管理,不但提高了数据安全性,同时也解决了大量分散用户数据维护难的问题。同时,作为一项SOA网络服务的统一身份认证系统,其摆脱了具体业务系统的硬件平台、软件环境的束缚,能够非常友善的所有符合接口标准的新进业务系统,减轻后续业务系统身份认证模块的设计和开发工作。

[page]    4、基于分布式SOA架构的统一身份认证体系的实现

基于分布式s0A架构的统一身份认证体系包括统一身份认证系统,相关集群环境、网络环境与硬件设备。统一身份认证系统功能图如图2所示,其至少需包含认证模块、授权模块、查询模块和系统服务模块。这四个模块是完整统一身份认证系统的最小组成,其他模块如保密通讯模块等可根据实际需求选择性添加。认证模块基于包含用户身份和权限的数据库和LDAP服务器,业务系统通过LDAP或Web Service接口实现待核查用户信息的提交,认证模块经目录模型检索,并通过数据库接口将用户信息进入数据库查询,将返回用户身份进行权限解释,最终反馈给请求提起的业务系统。

授权模块的主要功能在于分配用户权限,包括通过初始化权限产生新用户,基于分级授权的权限分配,及多业务系统间同用户不同ID的权限映射。授权模块作为所有业务系统权利分配的中心,其通过多级管理加强系统安全。与业务系统角色分类方式不同,分为超级管理员,应用系统权限管理员,监督管理员。超级管理员分配应用系统权限管理员,应用系统权限管理员为普通用户。

查询模块主要功能为查找特定用户,相同权限用户的汇总和所有用户权限变更查询。

系统服务模块只对超级管理员开放,提供统一身份认证系统与数据库和其他业务系统的连接配置,系统日志管理和维护,系统备份信息管理等服务。

一般业务系统根据角色分类,应包含以下几类用户:系统管理员,业务操作员,运维人员,审查监督员和普通用户。大部分业务系统的用户都应使用与外部因特网物理隔绝的内联网访问业务系统服务器,对于少数需要外联的业务系统,则需要在另设防火墙和代理服务器。

基于分布式SOA架构的统一身份认证体系建议部署架构如图3所示。用户通过受到严格监管的终端设备接入内联网,路由器和交换机通过链路冗余保证线路可靠性,防火墙提供必要的安全防护。

Browser/Server架构(BIS架构)逐渐取代Client/Server架构(C/S架构),业务系统的访问均需通过Web服务器提供Web访问支持。在防火墙后端,基于分布式SOA架构的统一身份认证体系需要建立一组Web服务器集群,为业务系统和身份统一认证系统提供负载均衡,减少因单点故障引起的访问中断。可以选择的Web服务器商业软件非常多,如IIS,Weblogic,Tomcat,IHS等。在选择合适的Web服务器软件时应注意两点:一是尽量选迁移容易,跨平台能力强的Web服务器软件。因为服务器的更新换代必然带来Web服务器的迁移,而从实践中看,Web服务器跨平台换代的可能性较应用服务器大很多,所以易跨平台迁移的Web服务器软件能为系统更新升级带来极大的便利。二是与应用服务器的兼容性。如果应用服务器使用了IBM的小型机,那么选择IHS作为Web服务器软件就比选择IIS明智的多。选择同一厂商的软硬环境不但在兼容性上有明显优势,而且若发生运行故障也能获得较为完整的技术支持。

应用服务器是基于分布式SOA架构的统一身份认证体系的核心,也是业务系统的关键部件。应用服务器上不但部署了统一身份认证系统,也部署了业务系统。事实上,前者可视为一项提供对内服务的“业务系统”。应用服务器位于防火墙后端,使用集群的方式进行联结,且与Web服务器集群通过以太网互联。应用服务器集群是SOA架构承载平台,所有松耦合的业务系统均部署在集群中,使用主从方式、双机双工方式或多服务器互备方式运行,获得系统的高可用性。同时,应用服务器集群与Web服务器集群、防火墙的连接也使用了链路冗余,保证银行业务系统和统一身份认证系统的连通性。

数据库服务器集群为应用服务器集群提供数据存储服务,其位于应用服务器集群的后端,使用Network File System方式访问。基于分布式SOA架构的统一身份认证体系的存储网络架构采用Storage Area Network(SAN),将不经常访问的数据存放在离线存储设备上,如磁带库;将需要快速传输或经常访问的数据存放在在线存储设备上,如磁盘阵列。值得注意的是,统一身份认证系统与其他业务系统公用SAN存储网络,它将存储设备和数据库服务器用光纤连接起来,通过多个光纤交换机提供的链路冗余,组件成一个可靠的光纤通道网络。它的支持技术是Fibre Charmer协议(FC)。采用SAN可以使得数据的实际备份和存储独立与数据库逻辑请求之外,即很大程度上消除了因存储设备I/O速率与系统运行速度不匹配带来的瓶颈效应。

 5、小结

构建基于分布式SOA架构的统一身份认证体系于金融业业务系统大集中的背景下提出,在身份认证集中化、信息化等方面作了一定的探索和研究,在实际使用也展现了良好的应用前景。统一身份认证将是大势所趋,各金融机构不应只拘泥于机构内部的身份统一,在机构间建立基于安全可靠的信任关系,能够为加强经济信息互通互联,促进金融发展带来前所未有的机遇。

构建基于分布式SOA架构的统一身份认证体系的更多相关文章

  1. 基于DDD + SD.Framework实现的统一身份认证系统

    项目地址 http://git.oschina.net/lishilei0523/ShSoft.UAC 项目说明 本项目开发的目的有三: 1.作为一个使用SD.Framework框架开发的项目样板 2 ...

  2. JEECG 集成KiSSO单点登录实现统一身份认证

    JEECG 集成KiSSO单点登录实现统一身份认证 JEECG 如何为其他第三方系统实现统一身份认证服务,实现单点登录? 第三方系统如何对接呢? 今天为大家揭开这层面纱,让大家了解实质,使用它更快速的 ...

  3. 【.NET Core微服务实战-统一身份认证】开篇及目录索引

    简介 ​ 学习.NETCORE也有1年多时间了,发现.NETCORE项目实战系列教程很少,都是介绍开源项目或基础教程,对于那些观望的朋友不能形成很好的学习思路,遇到问题怕无法得到解决而不敢再实际项目中 ...

  4. ASP.NET WebApi 基于分布式Session方式实现Token签名认证

    一.课程介绍 明人不说暗话,跟着阿笨一起学玩WebApi!开发提供数据的WebApi服务,最重要的是数据的安全性.那么对于我们来说,如何确保数据的安全将会是需要思考的问题.在ASP.NETWebSer ...

  5. ASP.NET WebApi 基于分布式Session方式实现Token签名认证(发布版)

    一.课程介绍 明人不说暗话,跟着阿笨一起学玩WebApi!开发提供数据的WebApi服务,最重要的是数据的安全性.那么对于我们来说,如何确保数据的安全将会是需要思考的问题.在ASP.NETWebSer ...

  6. 中国科学技术大学统一身份认证系统CAS

    CAS | Apereohttps://www.apereo.org/projects/cas 中国科学技术大学统一身份认证系统https://passport.ustc.edu.cn/login?s ...

  7. 记录使用Python登录浙江大学统一身份认证

    背景 现在每天要进行健康情况上报,但是因为经常睡过头忘记打卡,于是想着写一个程序来自动打卡. 统一身份认证 访问健康情况上报页面(https://healthreport.zju.edu.cn/nco ...

  8. Shiro01 功能点框图、架构图、身份认证逻辑、身份认证代码实现

    基本功能点 功能点框图 功能点说明 1.Authentication:身份认证/登录,验证用户是不是拥有相应的身份: 2.Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个 ...

  9. 基于FormsAuthentication的用户、角色身份认证

    一般情况下,在我们做访问权限管理的时候,会把用户的正确登录后的基本信息保存在Session中,以后用户每次请求页面或接口数据的时候,拿到 Session中存储的用户基本信息,查看比较他有没有登录和能否 ...

随机推荐

  1. [译]流言终结者 —— SQL Server 是Sybase的产品而不是微软的

    http://www.cnblogs.com/xxxtech/archive/2011/12/30/2307859.html by Euan Garden 这些年来我听说过关于这个流言的许多版本,其中 ...

  2. 安卓请求网络错误 直接在main Thread 进行网络操作出现maintreamexception

    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites ...

  3. 搭建Go调试环境(LiteIDE)

                安装及配置LiteIDE 将 liteidex32.1.windows-qt5.zip解压到D:\即完成安装.   设置编辑环境 查看->编辑当前环境,确认GOROOT变 ...

  4. Python 列表 append() 方法

    描述 Python 列表 append() 方法用于在列表末尾追加新的对象. 语法 append() 方法语法: L.append(obj) 参数 obj -- 追加到列表末尾的对象. 返回值 该方法 ...

  5. Xcode6:解决_NSURLAuthenticationMethodServerTrust异常问题

    一.在使用Xcode6进行执行项目时.发现程序直接Crash了,控制台信息例如以下: dyld: Symbol not found: _NSURLAuthenticationMethodServerT ...

  6. [转]Ubuntu上安装TL-WN725N 2.0无线网卡驱动

    笔者使用的Ubuntu操作系统是13.04版本的,这个版本下,笔者使用朋友的TL-WN725N 1.0版本的无线网卡,直接插上就可以使用.正是由于这个方便性,不用去折腾什么驱动,所以笔者从京东上买了一 ...

  7. MySQL 数据库 分页查询

    在使用MySQL 进行数据库分页查询的时候最主要是使用LIMIT子句进行查询: 首先来看一下LIMIT: LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两 ...

  8. redis 只允许指定的额内网IP访问,其余的外网IP不允许访问

    为了redis的安全,现在设定如下规则.只允许指定的服务器通过内网的方式访问.其余一律不准访问 因为redis登录额时候是不需要密码的,很不安全. 所以这里添加如下iptables规则 iptable ...

  9. Jenkins 使用学习笔记

    3.1    Jenkins安装    2 3.1.1    Jenkins下载    2 3.1.2    Jenkins 安装    2 3.1.3    Jenkins 目录结构    3 3. ...

  10. Memcached安装使用和源代码调试

    memcached官网:http://memcached.org/ 一.安装 下载 # wget http://www.memcached.org/files/memcached-1.4.25.tar ...