浙商银行LDAP设计SOA
By:Roy.LiuLast updated:2011-06-11
文档名称
|
浙商银行SOA暨柜面业务系统项目 LDAP设计方案 |
|||||
作者
|
刘英学 国际商业机器(中国)投资有限公司 |
|||||
审批者
|
国际商业机器(中国)有限公司
|
浙商银行
|
||||
审批者签名:
|
签名: 日期: |
签名: 日期: |
||||
说明
|
根据国际商业机器(中国)有限公司与浙商银行签订的工作说明书的工作内容,本文档为最终用户浙商银行SOA暨柜面业务系统项目的详细设计方案。
|
|||||
文件名称
|
浙商银行LDAP子系统设计方案.doc
|
|||||
修订历史 (REVISION HISTORY)
|
||||||
Rev
|
Section
|
Type
|
Date
|
Author
|
Remarks
|
|
1.0
|
ALL
|
New
|
2008.07
|
刘英学
|
创建设计方案的第一版本。
|
|
|
|
|
|
|
|
内容范围
本文档是IBM为浙商银行SOA暨柜面业务系统项目所提供的实施报告书。具体实施内容和范围请参照服务工作说明书。
适用的对象
本文档仅适用浙商银行SOA暨柜面业务系统项目。
目录
1 用户验证(Authentication)实现方案
1.1 用户名+密码验证: 1.2 指纹验证
2 LDAP Schema设计 2.1 柜员
2.2 机构 2.3 柜组
2.4 交易 2.5 角色
3 目录树设计 3.1 设计原则
3.2 全行目录信息树架构
1 用户验证(Authentication)实现方案 本系统需要支持两种方式的单因子用户验证:用户名+密码,指纹验证。
1.1 用户名+密码验证: 目前,有两种方案用于实现LDAP的用户名+密码用户验证,分别是LDAP Simple Bind API以及DIGEST-MD5 SASL Bind。
LDAP Simple Bind API的特点如下: 1. 简单,易于使用,Out-of-Box function
2. 存在潜在的安全漏洞,认证过程中密码以明文方式传递 DIGEST-MD5 SASL Bind的特点如下:
1. IBM 基于业界规范:SASL DIGEST-MD5 的实现方式 2. 安全性更高:在认证过程中不需要传递密码;
IBM建议采用DIGEST-MD5 SASL Bind方式实现LDAP用户名+密码验证功能。 1.2 指纹验证
通过遵循SASL规范,编写LDAP plug-in,通过扩展LDAP的认证功能,并调用指纹采集设备提供商提供的API,可以实现基于LDAP的指纹用户身份认证。柜员的10个指纹模数据将存储于LDAP中。该方案的优点在于向柜员系统提供了统一的柜员身份认证调用接口。 缺点在于:
• 需扩展LDAP的用户身份认证功能,开发/测试工作量大; • 需要第三方指纹信息管理设备提供C/JAVA API,用于实现指纹比对;
• 可靠性需通过高质量代码以及LDAP的HA设计来保证; 2 LDAP Schema设计
在浙商银行LDAP schema设计中,制定了以下对象的schema,分别是:柜员、机构、柜组、交易、角色。 2.1 柜员
所有人员信息存放在用户目录树中cn=users分支下,所有人员信息的存储不再进行分级存储,所有人员信息都是采用扁平结构进行存储的。 全行的柜员信息都存放在“cn=users,dc=czbank,dc=com”这个分支节点下。
柜员对象类:CZBankTeller 属性名 |
属性说明
|
属性类型
|
CZBankTellerNumber
|
柜员号
|
Directory String syntax
|
CZBankTellerRoles
|
柜员所拥有的角色 (多值) |
Directory String syntax
|
CZBankTellerTransactions
|
柜员所能执行的交易(多值) |
Directory String syntax
|
CZBankYWED
|
柜员的业务额度(业务类型(现金收/现金付/转账)+币种+金额;多值) |
Directory String syntax
|
CZBankYWXE
|
柜员的业务限额(业务类型+币种+金额;多值) |
Directory String syntax
|
CZBankZGSQED
|
主管/主办的授权额度(业务类型+币种+金额;多值) |
Directory String syntax
|
CZBankAuthenticationType
|
柜员认证类型(密码/指纹) |
Directory String syntax
|
CZBankFingerprint
|
存储采集的指纹模
|
Directory String syntax
|
CZBankFingerprint2
|
存储采集的指纹模
|
Directory String syntax
|
CZBankFingerprint3
|
存储采集的指纹模
|
Directory String syntax
|
CZBankFingerprint4
|
存储采集的指纹模
|
Directory String syntax
|
CZBankFingerprint5
|
存储采集的指纹模
|
Directory String syntax
|
CZBankFingerprint6
|
存储采集指纹模
|
Directory String syntax
|
CZBankFingerprint7
|
存储采集的指纹模
|
Directory String syntax
|
CZBankFingerprint8
|
存储采集的指纹模
|
Directory String syntax
|
CZBankFingerprint9
|
存储采集的指纹模
|
Directory String syntax
|
CZBankTellerStatus
|
柜员状态
|
Directory String syntax
|
CZBankLastLoginIP
|
最后登录IP地址 |
Directory String syntax
|
employeenumber
|
员工号
|
Directory String syntax
|
departmentnumber
|
所属机构编号
|
Directory String syntax
|
displayname
|
柜员名称
|
Directory String syntax
|
userpassword
|
柜员密码
|
Binary - octet string
|
business category
|
所属柜组编号
|
Directory String syntax
|
title
|
柜员等级
|
Directory String syntax
|
2.2 机构 所有机构的信息在整个目录树中会采用扁平的方式存储在cn=orgs下。DN为:o=xxx,cn=orgs,dc=czbank,dc=com。
机构对象类:CZBankOrganization 属性名 |
属性说明
|
属性类型
|
CZBankOrganizationName
|
机构名称(中文) |
Directory String syntax
|
CZBankOrganizationNumber
|
机构编码
|
Directory String syntax
|
CZBankOrganizationStatus
|
机构状态
|
Directory String syntax
|
CZBankSupervisoryDepartment
|
上级机构
|
Directory String syntax
|
CZBankJGLX
|
机构类型(总中心,分中心,网点等等)
|
Directory String syntax
|
CZBankJGYWZLSQED
|
需要授权的业务种类额度(按业务种类设定,业务种类+币种+金额) |
Directory String syntax
|
CZBankJGJYSQED
|
(按交易(例如:汇票出票,)设定,业务种类+交易码+币种+金额)特例授权 |
Directory String syntax
|
CZBankJZJY
|
本机构禁止交易清单(多值)
|
Directory String syntax
|
o
|
机构名称
|
Directory String syntax
|
2.3 柜组 所有柜组的信息在整个目录树中会存放在o=xxx,cn=orgs,dc=czbank,dc=com这个分支下,柜组信息的存储会在这个分支下进行扁平存储,机构与柜组之间的关系通过CZBankSupervisoryDepartment属性进行关联。
柜组对象类:CZBankOrganizationUnit对象类 属性名 |
属性说明
|
属性类型
|
CZBankOrganizationName
|
柜组名称(中文)
|
Directory String syntax
|
CZBankOrganizationNumber
|
柜组编码
|
Directory String syntax
|
CZBankOrganizationStatus
|
柜组状态
|
Directory String syntax
|
CZBankSupervisoryDepartment
|
上级机构
|
Directory String syntax
|
ou
|
柜组名称
|
Directory String syntax
|
2.4 交易 所有交易的信息在整个目录树中会存放在cn=trans,dc=czbank,dc=com这个分支下。
交易对象类:CZBankTransaction 属性名 |
属性说明
|
属性类型
|
cn
|
交易代码
|
Directory String syntax
|
CZBankTransName
|
交易名称
|
Directory String syntax
|
|
|
|
|
|
|
CZBankSWJYSQJB
|
本事务类交易的授权级别;无需授权/到网点为止/到分中心为止/到总中心为止 |
Directory String syntax
|
CZBankSFTJSQ
|
本交易是否需要同机授权True/False(异机) |
Boolean - TRUE/FALSE
|
2.5 角色 所有角色的信息在整个目录树中会存放在cn=groups,dc=czbank,dc=com这个分支下。
角色对象类:CZBankRole 属性名 |
属性说明
|
属性类型
|
CZBankTransactions
|
本角色可以执行的交易清单(多值)
|
Directory String syntax
|
cn
|
角色名称
|
Directory String syntax
|
description
|
角色描述
|
Directory String syntax
|
member
|
角色成员(多值)
|
Directory String syntax
|
3 目录树设计 3.1 设计原则
目录树的结构设计为目录数据的命名和应用访问提供基本框架,目录树的结构设计应符合LDAP层次模型,目录树提供一种组织目录数据的方法。 目录树设计的基本原则如下:
² 有利于简化目录数据的管理; ² 可以灵活的创建数据复制和访问策略;
² 支持应用系统对目录数据的访问要求; 3.2 全行目录信息树架构
浙商银行目录信息树架构示意图(插入一幅新图,来源于PPT)
cn=users子树下,放置柜员条目 cn=orgs子树下,放置机构和柜组信息
cn=groups子树下,放置角色信息 cn=trans子树下,放置交易相关的的信息
From:一号门
Previous:张江男挤车上班
COMMENTS