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



对于客户端应用来说,集成 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 放到云中的第一步。

 

一点想法,欢迎专家大虾们批评指正。