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
放到云中的第一步。
一点想法,欢迎专家大虾们批评指正。
转载于:https://blog.51cto.com/lishengli/350787