基于LDAP进行验证-方法和问题

原文 http://apps.hi.baidu.com/share/detail/50011933

随着LDAP的发展和趋于成熟,基于LDAP的应用也越来越广泛,这些应用往往都离不开身份验证。这里就来说一下基于LDAP的目录服务进行验证。
  和利用数据库进行验证类似,LDAP中也是利用登陆名和密码进行验证,LDAP中会定义一个属性password,用来存放用户密码,而登陆名使用较多的都是mail地址。那怎么样才能正确的用LDAP进行身份验证呢,下面是一个正确而又通用的步骤:
  1. 从客户端得到登陆名和密码。注意这里的登陆名和密码一开始并没有被用到。
  2. 先匿名绑定到LDAP服务器,如果LDAP服务器没有启用匿名绑定,一般会提供一个默认的用户,用这个用户进行绑定即可。
  3. 之前输入的登陆名在这里就有用了,当上一步绑定成功以后,需要执行一个搜索,而filter就是用登陆名来构造,形如: "(|(uid=$login)(mail=$login))" ,这里的login就是登陆名。搜索执行完毕后,需要对结果进行判断,如果只返回一个entry,这个就是包含了该用户信息的entry,可以得到该 entry的DN,后面使用。如果返回不止一个或者没有返回,说明用户名输入有误,应该退出验证并返回错误信息。
  4. 如果能进行到这一步,说明用相应的用户,而上一步执行时得到了用户信息所在的entry的DN,这里就需要用这个DN和第一步中得到的password重新绑定LDAP服务器。
  5. 执行完上一步,验证的主要过程就结束了,如果能成功绑定,那么就说明验证成功,如果不行,则应该返回密码错误的信息。
  这5大步就是基于LDAP的一个 “两次绑定” 验证方法,下面这个图能更形象的说明这个过程:


                                                           图:基于LDAP的 “两次绑定” 验证流程
        为什么基于LDAP进行验证需要“两次”绑定呢,为什么不能取出password然后和输入进行比较呢,试想一下,如果需要读出密码,服务器上的密码存储 要么就不加密,直接可以读出,要么客户就需要知道服务器使用的加密方式,这是不安全,也是不好的,服务器不希望加密方式让客户端知道,客户端也不需要知道 这么多。而从实际来看,LDAP服务器对于password属性默认都是不可读的,甚至有的服务器根本就不支持password属性可读,遇到这种情况, 也就没有办法取得密码了。
       还有一个问题就是,为什么我们需要第一次绑定?为什么不直接使用DN呢,首先就是关于这个DN,对于一般的客户端程序,其并不知道具体的DN是什么。再者 让用户输入DN,给用户带来不便的同时,验证也带来问题,因为如果输入的是个目录树而不是所期望的DN,在进行绑定时有可能会让服务器产生不可预料的错 误。
       从上面看来,基于LDAP进行身份验证,最好也是最通用的方法就是 “两次绑定”。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ibmtivolidirectoryserver(简称TDS)是IBM公司开发的一个企业级的LDAP(轻型目录访问协议)服务器LDAP是一种在网络上访问和管理分布式目录信息的协议,它可以提供高效的目录服务和数据存储。 TDS作为一个全功能的LDAP服务器,具有高度的可扩展性和灵活性。它支持多种操作系统平台,并可以实现与其他应用和系统的集成。 TDS的优势之一是其强大的安全性特性。它支持SSL/TLS加密传输和基于访问控制列表(ACL)的权限管理,确保用户身份和敏感数据的保护。此外,TDS还支持多种身份验证方式,包括基于口令、数字证书、Kerberos等,提供了灵活的身份验证机制。 TDS还具有分布式架构,可以构建大规模高可用性的目录服务器集群。它支持多主复制和多读写分离等功能,以提高服务器的性能和可用性。 TDS提供了丰富的管理工具和API,使管理员可以方便地管理LDAP服务器和目录数据。管理员可以使用图形界面进行配置和监控,或使用命令行工具进行批量操作。此外,TDS还提供了丰富的编程接口,方便开发人员进行二次开发和集成。 总之,ibmtivolidirectoryserver是一个强大、灵活和安全的LDAP服务器,适用于企业级的目录服务和数据管理。无论是初学者还是专业人士,都可以通过学习和使用TDS来提升自己的LDAP技能,实现目录服务的精通。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值