3月 162016
 

ldap有几个slap* 命令,与ldap* 命令不同的是,前者直接操作库文件,不涉及密码问题。

导出:

导入:

注意: 导入时,slapd不能是启动状态,至少使用bdb存储时如此,因为slapd启动后会对数据文件加锁;毕竟slapadd也不是通过slapd写入文件的,所以slapd没必要启动

参考资料:

http://www.361way.com/openldap-bak-imp-move/2366.html

http://www.cnblogs.com/ccdc/p/3356518.html

 

 Posted by at 下午 11:41
3月 102016
 

ldap服务器端默认每次search条目数最多 500 ; 加入我的条目数最多不会超过2000,那么,我是在不想分多次来search,直接把这个限制放大是再好不过的了;配置方法:

/etc/openldap/slapd.conf 中添加:

或者

注意: 这个限制只有管理员账号search时,才会超过500,普通账号search是不能超过500的

man ldapsearch:

 Posted by at 上午 11:19
2月 222016
 

缘起

现在都流行动态码认证了,ldap这个认证领域的老大还是静态密码认证,显得有些过时了,这里试图修改认证部分逻辑已支持动态密码验证。

 

相关代码: servers/slapd/bind.c

编译:

  1. CFLAGS=”-g” ./configure
    openldap依赖bdb,可以用yum安装: yum install -y db4
  2. ./make depend && make
  3. make install STRIP=”

注意: make install时默认是会去掉符号信息的;添加 STRIP=” 选项就不会去掉了(可能你也不需要make install)

开始gdb:

用户名:op->o_req_dn

密码在这里: op->o_request->oq_bind->rb_cred:

下一步就是要把密码修改,其中一部分拿到别的地方做动态密码验证,剩余部分继续给ldap来验证

 

ldap 验证逻辑:

 Posted by at 上午 11:15
7月 142015
 

ldap 中密码加密方式支持多种:

md5:{md5} + base64_encode(md5(“password”, true))

sha:{sha} + base64_encode(sha1(“password”, true))

smd5: salt + md5

ssha:salt+sha

crypt:和linux上的密码加密方式相同,也是一种摘要

参考资料:

 Posted by at 下午 5:49
6月 102015
 

 

posix group和posix account似乎都是特殊的对象,不管把posix group放到哪个层级,都能被识别出来是group,不管posix account放到哪个层级,都能被识别出来是account

虽然

cn=cn1,ou=a,dc=example,dc=com

cn=cn1,ou=b,dc=example,dc=com

 

查询所有可用的schema的方法:

ldapsearch -s base -b cn=Subschema objectClasses -D cn=admin,dc=example,dc=com -w password

 Posted by at 下午 5:47
4月 292008
 

 

1.  ldap的connect函数总给人一种假象,似乎是进行了tcp连接,但其实是没有做真正的tcp连接的,在设置连接的选项时都没有做tcp连接的,tcp连接时发生在bind操作时的

 Posted by at 上午 4:02
4月 242008
 

Windows下安装使用openldap
openldap 比起其他商业目录服务器(比如 IBM Directory Server),特别的轻巧,十分适合于本地开发测试用,在产品环境中的表现也很优秀。

openldap 软件在它的官方网站 http://www.openldap.org, 不过下载过来是源代码,并没有包含 win32 下的 Makefile 文件,只提供了在 Unix/Linux 下编译用的 Makefile。所以相应的在网上介绍在 windows 下安装使用 openldap 的资料比较少,而在 Unix/Linux 下应用文档却很丰富。

本文实践了在 Windows 下安装配 openldap,并添加一个条目,LdapBrowser 浏览,及 Java 程序连接 openldap 的全过程。

1. 下载安装 openldap for windows,当前版本2.2.29
    下载地址:http://download.bergmans.us/openldap/openldap-2.2.29/openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe
    相关链接:http://lucas.bergmans.us/hacks/openldap/
   安装很简单,一路 next 即可,假设我们安装在 c:\openldap

2. 配置 openldap,编辑 sldap.conf 文件
   1) 打开 c:\openldap\sldap.conf,找到
    include  C:/openldap/etc/schema/core.schema,在它后面添加
    include  C:/openldap/etc/schema/cosine.schema
    include  C:/openldap/etc/schema/inetorgperson.schema

    接下来的例子只需要用到以上三个 schema,当然,如果你觉得需要的话,你可以把其他的 schema 全部添加进来
    include  C:/openldap/etc/schema/corba.schema
    include  C:/openldap/etc/schema/dyngroup.schema
    include  C:/openldap/etc/schema/java.schema
    include  C:/openldap/etc/schema/misc.schema
    include  C:/openldap/etc/schema/nis.schema
    include  C:/openldap/etc/schema/openldap.schema

   2) 还是在 sldap.conf 文件中,找到
    suffix  "dc=my-domain,dc=com"
    rootdn  "cn=Manager,dc=my-domain,dc=com"
    把这两行改为
    suffix "o=tcl,c=cn"  
    rootdn "cn=Manager,o=tcl,c=cn"

    suffix 就是看自己如何定义了,后面步骤的 ldif 文件就必须与它定义了。还要注意到这个配置文件中有一个 rootpw  secret,这个 secret 是 cn=Manager 的密码,以后会用到,不过这里是明文密码,你可以用命令: slappasswd -h {MD5} -s secret 算出加密的密码 {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ== 取代配置中的 secret。

3. 启动 openldap
    CMD 进入到 c:\openldap 下,运行命令 sldapd -d 1
    用可以看到控制台下打印一片信息,openldap 默认是用的 Berkeley DB 数据库存储目录数据的。

4. 建立条目,编辑导入 ldif 文件
   1) 新建一个 ldif(LDAP Data Interchanged Format) 文件(纯文本格式),例如 test.ldif,文件内容如下:
   
dn: o=tcl,c=cn
objectClass: dcObject
objectClass: organization
o: tcl
dc: com

dn: uid=Unmi, o=tcl,c=cn
uid: Unmi
objectClass: inetOrgPerson
mail: fantasia@sina.com
userPassword:: MTIzNDU2
labeledURI: http://unmi.blogcn.com
sn: Qiu
cn: 隔叶黄莺

   2) 执行命令:ldapadd -x -D "cn=manager,o=tcl,c=cn" -w secret -f test.ldif
    导入组织信息和一个用户 uid=Unmi

5. LdapBrowser 浏览
下载地址:http://www.blogjava.net/Files/Unmi/LdapBrowser282.rar     注:需要安装jre

 Posted by at 下午 9:18