
解答:当然需要配置。安装好OpenLDAP后首先需要配置slapd.conf这个文件,其中里面有
这样一句需要自己配置,这两个dc代表什么意思呢?其实dc就是“domainComponent”,也就是域名的组成部分,准确的说是主机域名的 后缀组成部分,如果这里的配置与你的主机域名不对应的话,服务一般是启动不了的。那么怎么配置域名呢?Linux和Windows下的配置文件如下:
Linux下:/etc/hosts
Windows下:C:\Windows\System32\drivers\etc\hosts
需要在hosts文件里添加一条域名(如果没配置的话),格式如下:
比如我的主机名是min,并添加的域名配置是:
那么相应的我就需要在slapd.conf里这样配置suffix:
当然这里域名后缀不一定只有两级,也可以是hostname.example.com.cn,然后suffix就应该是“dc=example, dc=com, dc=cn”,这随便你怎么设置了,只要对应就行。
疑惑2:很多版本的slapd.conf里默认都配置了下面两个变量:
modulepath /usr/lib/ldap moduleload back_@BACKEND@
这是什么意思?需要改动吗?
解答:这是database的backend,一般slapd.conf里配置的database都是 bdb,也就是Berkeley DB,有的也许是hdb,其实也是Berkeley DB,只是两个不同的存储引擎(就像Mysql有MyISAM和InnoDB两个不同的存储引擎一样)。而modulepath和moduleload指 定了动态模块路径及动态装载的后端模块,因为OpenLDAP默认是用Berkeley DB存储数据的,如果你有动态的数据需要装载,那么就需要配置这两个参数,对于一般用户将这两个注释掉即可。
疑惑3:OpenLDAP默认采用Berkeley DB存储数据,那么可以换用其它的关系吗?具体如何配置呢?
解答:当然可以。首先需要明确ldap数据模型来自RDBMS(关系模型),而并没有指定一定是哪个DB,只要是关系都可以作为LDAP的后台,那么你为什么会想用其它的代替自带的Berkeley DB呢?我想可能是性能相关了,对于少量数据你用哪个都可以,但若涉及到稍大点的数据,比如成千上万的用户查询,那么Berkeley DB的性能就不可观了,而且Berkeley DB管理起来也不太方便,毕竟对这个熟悉的人不多,如果能换作我们经常使用的,不仅性能得到提升,管理起来也十分容易,岂不是一举多得。
具体怎么配置了,请参考这篇文章:用postgresql作后台的openldap,以PostgreSQL作为例子进行讲解。
疑惑4:新旧版本的OpenLDAP到底有什么差异呢?
解答:简单一句话就是:旧版本的OpenLDAP配置文件一般是slapd.conf(路径可能是/etc/openldap,也可能是/usr/local/openldap,甚至可能是/usr/share/slapd/,不同版本不同安装不同系统都可能不同,可使用locateslapd.conf进行查找正确的路径),而新版本(我测试的新版本是2.4.31)的OpenLDAP服务运行时并不会读取该配置文件,而是从slapd.d目录(一般与slapd.conf在同一目录下)中读取相关信息,我们需要把该目录下的数据删掉,然后利用我们在slapd.conf里配置的信息重新生成配置数据。这也可能是你启动服务后运行ldap相关命令却出现“ldap_bind: Invalid credentials (49)”错误的主要原因。具体怎么重新生成配置数据请看参考资料。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-37104-2.html
现在呢