当前位置: 首页 > Linux

openldap的配置与使用

时间:2023-04-06 23:24:06 Linux

先说说我的openldap配置吧。由于我的虚拟机操作系统是银河麒麟(内核是ubuntu),所以无法实现openldap的yum安装。结果不知道为什么和网上大部分文章描述的文件结构不一致(我找遍了所有的slapd.d文件也没找到,只能去到/usr/local/openldap/etc/openldap/slapd.conf来配置吧),毕竟我是开发人员,最终目标是写实现代码,功底还是有点生疏。让我们开始我的配置。首先进入上面的配置文件。打开这个配置文件下的schema/文件如原文件所示,包含所有.schema文件,然后进入配置文件往下看。接下来添加loglevel256logfile/usr/local/openldap/var/slapd.log用于生成日志(很重要,可以让你更清楚它的运行过程和原理)。接下来就是更改用户名和密码后缀,rootdn这两个就相当于你的用户名,它们的重要性不言而喻。rootpw相当于你的密码,建议不要用明文,改成密文更安全,这里告诉你,修改密码的url在/usr/local/openldap/sbin,因为它是在/usr/local/openldap/bin中也有类似的文件。当时一直提示找不到错误原因(原谅我生疏了。。。)。这种东西是找不到的,记住了。在sbin目录下修改密码命令/slappasswd-h{SSHA}输入密码(翻译成中文...)确认新密码(翻译成中文...)将{SSHA}的密文密码复制到配置中文件中间。基本上配置就是这样,后面进行同步配置的时候会单独说。让我们谈谈使用配置。启动slapd文件/usr/local/openldap/libexec/slapd-d256,出现这个画面说明服务器启动成功。为了方便,您可以下载一个客户端软件。我下载了ApacheDirectoryStudioURL:http://directory.apache.org/s...非常容易使用。输入主机地址、用户、密码,并检查连接。如果没有问题,在服务器上创建一个test.ldif文件。(注意网上添加这个文件数据是直接运行,当时想不通是在哪个目录下创建的,后来输入如下ldapadd命令后,才知道应该是在同一个目录下)dn:dc=mydomain,dc=comobjectClass:dcObjectobjectClass:organizationdc:mydomaino:mydomain.incdn:cn=Manager,dc=mydomain,dc=comobjectClass:organizationalRolecn:Managerdn:ou=itsection,dc=mydomain,dc=comou:itsectionobjectClass:organizationalUnitdn:cn=sean,ou=itsection,dc=mydomain,dc=comou:itsectioncn:seasn:zhouxiaoobjectClass:inetOrgPersonobjectClass:organizationalPerson插入数据./ldapadd-x-D"cn=Manager,dc=mydomain,dc=com"-W-ftest.ldif如果服务器让你输入密码,只要不报错,服务器就会没问题。然后观察客户端是否显示。如果没有问题,说明你的openldap运行正常。关于自定义模式文件,这真是一个陷阱。一开始我只是简单的认为只需要展开一个.schema文件,然后在openldap的配置文件中include即可。事实上,在实际定义了.schema文件之后,我并不这么认为。现在说说我先配置的schema文件:attributetype(2017.1.4.1.0.1.1NAME'servId'DESC'RFC2256:servId'EQUALITYcaseIgnoreMatchSUBSTRcaseIgnoreSubstringsMatchSYNTAX1.3.6.1.4.1.1466.115.121.VALUE)attributetype(2017.1.4.1.0.1.2NAME'servName'DESC'RFC2256:servName'EQUALITYcaseIgnoreMatchSUBSTRcaseIgnoreSubstringsMatchSYNTAX1.3.6.1.4.1.1466.115.121.1.15SINGLE-VALUE)attributetype(2017.1.4.1.0serv.1.3名称'DESC'RFC2256:servIp'EQUALITYcaseIgnoreMatchSUBSTRcaseIgnoreSubstringsMatchSYNTAX1.3.6.1.4.1.1466.115.121.1.15SINGLE-VALUE)attributetype(2017.1.4.1.0.1.4NAME'servPid'DESC'RFC2256:ALservREbSatchcaseEQUIRMITYTRatchcaseSUSUREPID'EQUIRESubstringscaseIQUIREBSPID'属性类型语法1.3.6.1.4.1.1466.115.121.1.15单值)objectclass(2017.1.4.1.0.1NAME'globalserver'DESC'RFC2798:globalserver'SUPtopSTRUCTURALMUSTservIdMAY(servName$servIp$servPid))第一个坑:你的SYNTAX,EQUALITY,SUBSTR必须要符合标准,网上查不到(这个MatchingI不知道我是怎么跑到网上去一个一个试文件的。。。。说多了会哭)网上很多东西都是错的,得勤快点。第二个陷阱:就是你的自定义属性一定不能和内置属性重复,切记!因为到最后你可能真的会因此而发疯,明明一切都是对的……还有一点不能确定,那就是OID号的问题。网上说最好自己申请一个。网上抄来的,目前没有作用。。。