OpenLDAP的安装与基本使用方法(下)

在这篇文章中,我们将学习如何修改以及删除数据库中的数据。此外,我们还要学习使用LDAP做为用户数据库为httpd提供认证服务。

修改数据

我们可以使用ldapmodify指令来修改数据。修改的具体内容同样是通过ldif文件的形式:

OpenLDAP的安装与基本使用方法(下)_第1张图片

从文件内容可以看到我们通过dn来指定具体要修改哪条数据。此外,我们指定了changetype为modify,说明是要修改这条数据的内容。最后,我们通过replace指令来说明要修改的具体数据:我们将roomNumber修改为302。

然后我们通过ldapmodify指令来读入这个ldif文件完成数据修改:



最后我们通过ldapsearch来确认roomNumber被修改成了302:



有关ldapmodify的详细说明可以查看这篇文档: Modifying Entries Using ldapmodify

删除数据

我们可以使用ldapdelete命令来删除数据。比如我们要删除uid=weli这条数据,可以这样做:

echo "uid=weli,ou=Users,dc=my-domain,dc=com" | ldapdelete -x -D 'cn=Manager,dc=my-domain,dc=com' -w secret -r


其中-r的含义和rm -r一样,都是recursive delete。对于删除上面uid=weli这条数据来讲这个选项用处不大,如果我们要删除"ou=Users,dc=my-domain,dc=com"及其包含的所有用户数据, 就必须指定-r选项。

执行完上完的命令,我们可以验证数据库中这条数据已经被删除了:

[root@localhost ~]# ldapsearch -x -D 'cn=Manager,dc=my-domain,dc=com' -w secret -b 'dc=my-domain,dc=com' 'uid=weli'
# extended LDIF
#
# LDAPv3
# base <dc=my-domain,dc=com> with scope subtree
# filter: uid=weli
# requesting: ALL
#

# search result
search: 2
result: 0 Success

# numResponses: 1


可以看到数据库中已经没有这条数据。接下来利用本文上篇中介绍的方法,我们再使用ldapadd命令把这条数据添加回来,因为后续要用到uid=weli这条数据。具体过程就不在这里重复了。

在httpd中集成ldap认证

在Fedora20中使用httpd和mod_ldap需要安装这两个包:

[root@localhost ~]# yum install -y -q httpd mod_ldap
Package httpd-2.4.9-2.fc20.x86_64 already installed and latest version
Package mod_ldap-2.4.9-2.fc20.x86_64 already installed and latest version


我们可以确认在httpd目录中,mod_ldap已经被配置进来:

OpenLDAP的安装与基本使用方法(下)_第2张图片

接下来我们要在httpd的conf.d目录中配置好与LDAP的连接:

OpenLDAP的安装与基本使用方法(下)_第3张图片

有关上面配置的具体含义,可以参考 mod_ldap的参考文档。上面配置的重点是这行:

AuthLDAPURL ldap://127.0.0.1/ou=Users,dc=my-domain,dc=com?uid?sub?(objectClass=*)


我们通过指定AuthLDAPURL,这样ou=Users下的用户就可以用来登录httpd中的应用。我们在ou=Users下已经有一条用户数据就是uid=weli,接下来需要做的是为这个用户配置一个密码:

[root@localhost ~]# ldappasswd -x -D 'cn=Manager,dc=my-domain,dc=com' -w secret -s weli123 'uid=weli,ou=Users,dc=my-domain,dc=com'


如上所示,我们使用ldappasswd来为用户设置密码,密码为weli123。接下来我们可以用ldapsearch做下查询,看看这条用户数据:

OpenLDAP的安装与基本使用方法(下)_第4张图片

可以看到用户的密码被保存在了userPassword当中,并且是加密过的。接下来我们启动httpd服务器:

[root@localhost ~]# service httpd start
Redirecting to /bin/systemctl start  httpd.service


然后试着访问服务:

OpenLDAP的安装与基本使用方法(下)_第5张图片

可以看到httpd服务让我们输入用户名和密码。我们输入ldap中的用户信息,就可以登录了:

OpenLDAP的安装与基本使用方法(下)_第6张图片

如果用户名或密码错误,则可以在httpd的日志中看到认证错误信息:

OpenLDAP的安装与基本使用方法(下)_第7张图片

以上就是httpd集成ldap的基本配置方法。

总结

通过本文的上下两篇,我们学习了基本的OpenLDAP使用方法。后续如果想要系统学习, OpenLDAP的管理员文档是很好的阅读材料。


你可能感兴趣的:(httpd,LDAP,openLdap)