LDAP Server 也称为Directory Server (目录服务器) 用来保存各种资源 (人、组织、资产)的信息和属性 (姓名、地址、电话等)LDAP Server已经成为企业IT资产中的基础设施,用来存贮和管理企业的各种资源,并和其他IT服务集成,如Mail Server 企业登录认证等。
作为一种标准的网络协议,LDAP有一套标准的API,可以用来将LDAP集成到各种业务中去。但是LDAP的编 程比较复杂,需要有经验的程序员来做。
 
我有一个想法,就是用Web Service来封装LDAP的基本操作和典型的应用。来简化LDAP的集成编程,同时丰富LDAP的应用。
Web Service来封装LDAP,就是在LDAP的服务器和客户端之间加一层Web Service Layer,提供各种Web Interface

用Web Service封装Directory Server (LDAP Server)_ SaaS

对于客户端应用来说,集成LDAP就变成了调用一个 Web Service Interface,编程大大简化,而且稳定性提高了。同时由于Web Service使用HTTP端口,不用担心防火墙阻挡的问题。
举个例子来说,LDAP最典型 的应用就是用户验证(Authentication),验证用户输入的名字和密码是否合法。 基本业务流程是这样的:
1.      客户端连接到LDAP Server (ldap bind), 然后用用户的名字查询LDAP Server (ldap search),找到这个用户的DN (Distinguished Name)
2.      用这个DN和用户的密码去连接LDAP Server (ldap bind) 如果失败,验证失败。
3.      如果成功了,查询这个用户上次更改密码的时间 (ldap search) 检查密码的有效期。
4.      还有可能查询用户隶属的组,确定用户的权限和访问范围 (ldap search)
这里 用到了多次重复的LDAP操作 (当然内容是不一样的)。每个操作中调用一个或多个API,加上参数准备,返回值处理等,比较繁琐。调用Web Service则简单明了:
Authenticate (name, password)
判断返回值就知道验证结果了。
对于客户端还有一个好 处就是减轻了对LDAP客户端库的依赖。在PC和服务器上一般都有LDAP客户端库,但移动设备上一般都没有LDAP库。使用Web Service就能够使移动应用直接继承LDAP服务,而不需要中间服务器做代理。
 
对于服务器这边来说,通过Web Service,能够控制信息的组织结构,并且单点控制业务逻辑,可以更好的监控业务行为。
Web Service也是以后进行SaaS Enable,将LDAP Service放到云中的第一步。
 
一点想法,欢迎专家大虾们批评指正。