技术平台-开发环境-用户认证
用户认证
LDAP是Lightweight Directory Access Protocol的缩写,顾名思义,它是指轻量级目录访问协议(这个主要是相对另一目录访问协议X.500而言的;LDAP略去了x.500中许多不太常用的功能,且以TCP/IP协议为基础)。
LDAP目录以树状的层次结构来存储数据(这很类同于DNS),最顶层即根部称作“基准DN”,形如"dc=krproject,dc=org"。在根目录的下面有很多的文件和目录,为了把这些大量的数据从逻辑上分开,LDAP像其它的目录服务协议一样使用OU(Organization Unit),可以用来表示公司内部机构,如部门等,也可以用来表示设备、人员等。同时OU还可以有子OU,用来表示更为细致的分类。
LDAP中每一条记录都有一个唯一的区别于其它记录的名字DN(Distinguished Name),其处在“叶子”位置的部分称作RDN;如dn:uid=tiger,ou=people,dc=krproject,dc=org中tiger即为RDN;RDN在一个OU中必须是唯一的。
安装步骤
以下为笔者在虚拟主机Ubuntu16.04上的安装步骤,其中:
- OpenLDAP 是LDAP的开源实现
- LDAP Account Manager 为基于PHP的LDAP管理员服务前端
- Self Service Password 为基于PHP的LDAP用户密码自助服务前端
OpenLDAP服务的安装与配置
https://www.openldap.org/doc/admin24/guide.html
安装openldap服务及工具包:
sudo apt-get update
sudo apt-get install slapd ldap-utils
配置slapd:
sudo dpkg-reconfigure slapd
会被问到一系列问题:
Omit OpenLDAP server configuration?
: NoDNS domain name
: 基于输入的domain创建基本的目录结构。krproject.org。Organization name
: krproject。Administrator password
: 安装时候输入的密码,或使用新密码。Database backend to use
: HDBremoved when slapd is purged?
: NoMove old database?
: YesAllow LDAPv2 protocol?
: No
配置slapd仅本机访问:
sudo vi /etc/default/slapd
将SLAPD_SERVICES="ldap:/// ldapi:///"
替换为:SLAPD_SERVICES="ldap://127.0.0.1:389/ ldapi:///"
我们采用组织属性(o)来控制各服务的访问权限,本地检查命令为:
ldapsearch -D "CN=admin,DC=krproject,DC=org" -w ****** -H ldap://localhost:389 -b "OU=people,DC=krproject,DC=org" "(o=*openvpn*)"
LDAP Account Manager的安装与配置
因为是php的应用,这里我们采用源码方式安装: 从 https://www.ldap-account-manager.org/lamcms/releases 处直接下载最新(6.3)的tar.bz2包,解压后,将内容放在apache2服务根目录/var/www/html/
下新建目录中。
LDAP Account Manager的配置全部在web端控制,通过访问域名+目录名即可进行!
Self Service Password的安装与配置
因为是php的应用,这里我们采用源码方式安装: 从 https://ltb-project.org/download#self_service_password 处直接下载最新(1.2)的tar.gz包,解压后,将内容放在apache2服务根目录/var/www/html/
下新建目录中。
编辑目录下的conf/config.inc.php
文件,配置ldap
和mail
段为自己所需配置即可。