OpenLDAP的安装与基本使用方法(八)
在这篇文章中,我们把openldap作为认证模块,集成进httpd。
在Linux下,需要按安装httpd
和mod_ldap
需要安装这两个包:
$ sudo dnf install -y httpd mod_ldap
我们可以确认在httpd
目录中,mod_ldap
已经被配置进来:
接下来我们要在httpd
的conf.d
目录中配置好与LDAP的连接。可以在/etc/httpd/conf.d
的目录里面创建一个myldap.conf
文件。
$ touch /etc/httpd/conf.d/myldap.conf
文件的内容如下:
<Directory "/var/www/html">
LogLevel debug
AuthType Basic
AuthName LDAP
AuthBasicProvider ldap
AuthLDAPURL ldap://127.0.0.1/ou=Users,dc=my-domain,dc=com?uid?sub?(objectClass=*)
AuthUserFile /dev/null
Require ldap-filter objectClass=inetOrgPerson
</Directory>
有关上面配置的具体含义,可以参考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
,接下来需要做的是为这个用户配置一个密码:
$ ldappasswd -h localhost -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
做下查询,看看这条用户数据:
$ ldapsearch -h localhost -LLL -x -D 'cn=Manager,dc=my-domain,dc=com' -w secret -b 'dc=my-domain,dc=com' 'uid=weli'
dn: uid=weli,ou=Users,dc=my-domain,dc=com
ou: Users
uid: weli
cn: Weinan Li
sn: Weinan
givenName: Weinan
title: Software Engineer
description: Systems Integration and IT for Example.Com
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
userPassword:: e1NTSEF9S3A1ay9GdkVkMGs0bzdCVEpIam0weVlZKzIyVzE3Q1M=
可以看到用户的密码被保存在了userPassword
当中,并且是加密过的。接下来我们启动httpd
服务器:
$ sudo service httpd start
Redirecting to /bin/systemctl start httpd.service
然后试着访问服务:
可以看到httpd
服务让我们输入用户名和密码。我们输入ldap
中的用户信息,就可以登录了:
如果用户名或密码错误,则可以在httpd
的日志中看到认证错误信息:
$ sudo service httpd start
Redirecting to /bin/systemctl start httpd.service
$ cd /etc/httpd/logs
$ tail -n 1 error_log
[Sat Feb 17 13:24:28.733749 2018] [auth_basic:error] [pid 15905] [client 127.0.0.1:41596] AH01618: user wewerew not found: /
以上就是httpd
集成ldap
的基本配置方法。
总结
至此,对openldap的使用分析告一段落。
- 上一篇 Haskell:对Functor的分析
- 下一篇 Haskell:Kind