LDAP

MuYusen 于 2020-01-05 发布 本文总阅读量

LDAP

(http://www.ldap.org.cn/) (https://www.howtoing.com/how-to-install-and-configure-openldap-and-phpldapadmin-on-ubuntu-16-04/)

LDAP是轻量目录访问协议,英文全称是LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL,一般都简称为LDAP。

当前多种开源系统都加入了LDAP的支持,比如:Gerrit、Gitlab、Jenkins、Redmine……

描述

优点

特点

  1. LDAP 是一种网络协议而不是数据库,而且LDAP的目录不是关系型的,没有RDBMS那么复杂,
  2. LDAP不支持数据库的Transaction机制,纯粹的无状态、请求-响应的工作模式。
  3. LDAP不能存储BLOB,LDAP的读写操作是非对称的,读非常方便,写比较麻烦,
  4. LDAP支持复杂的查询过滤器(filter),可以完成很多类似数据库的查询功能。
  5. LDAP使用树状结构,接近于公司组织结构、文件目录结构、域名结构等我们耳熟能详的东东。 LDAP使用简单、接口标准,并支持SSL访问。

LDAP与NIS相比

  1. LDAP是标准的、跨平台的,在Windows下也能支持。
  2. LDAP支持非匿名的访问,而且有比较复杂的访问控制机制(如ACL),安全性似乎更好一些。
  3. LDAP支持很多复杂的查询方式。
  4. LDAP的用途较NIS更为广泛,各种服务都可以和LDAP挂钩。

LDAP的主要应用场景

  1. 网络服务:DNS服务
  2. 统一认证服务:
  3. Linux PAM (ssh, login, cvs. . . )
  4. Apache访问控制
  5. 各种服务登录(ftpd, php based, perl based, python based. . . )
  6. 个人信息类,如地址簿
  7. 服务器信息,如帐号管理、邮件服务等

安装和配置LDAP服务器

安装

sudo apt-get update
sudo apt-get install slapd ldap-utils

在安装过程中,将要求您选择并确认LDAP的管理员密码。 您可以在这里输入任何内容,因为您将有机会在短时间内进行更新。

即使我们刚刚安装了这个软件包,我们也要进行重新配置。 slapd软件包有能力提出很多重要的配置问题,但默认情况下,它们将在安装过程中跳过。 通过告诉我们的系统重新配置包,我们可以访问所有提示:

sudo dpkg-reconfigure slapd

打开防火墙上的LDAP端口,以便外部客户端可以连接:

sudo ufw allow ldap

测试我们与ldapwhoami的LDAP连接,该连接应该返回我们连接的用户名:

ldapwhoami -H ldap:// -x
anonymous

phpLDAPadmin

Ubuntu存储库包含一个phpLDAPadmin软件包。 使用apt-get安装它:

sudo apt-get install phpldapadmin

首先在文本编辑器中打开具有root权限的主配置文件:

sudo vi /etc/phpldapadmin/config.php

寻找以$servers->setValue(‘server’,’name’开头的行;该行是LDAP服务器的显示名称,Web界面用于有关服务器的标题和消息。

$servers->setValue('server','name','Example LDAP');

$servers->setValue(‘server’,’base’行,该配置告诉phpLDAPadmin LDAP层次结构的根目录,这是基于我们在重新配置slapd包时输入的值。我们的示例我们选择了example.com ,我们需要将每个域组件(不是一个点)放入dc= notation中将其转换为LDAP语法:

$servers->setValue('server','base', array('dc=example,dc=com'));

现在找到登录bind_id配置行,并bind_id开头注释#

#$servers->setValue('login','bind_id','cn=admin,dc=example,dc=com');

此选项预先填充Web界面中的管理员登录详细信息。 这是我们不能共享的信息,如果我们的phpLDAPadmin页面是可公开访问的。

最后一件事是控制一些phpLDAPadmin警告消息的可见性的设置。 默认情况下,应用程序将显示相当多的关于模板文件的警告消息。 这些对我们目前使用的软件没有影响。 我们可以通过搜索hide_template_warning参数来隐藏它们,取消注释包含它的行,并将其设置为true :

$config->custom->appearance['hide_template_warning'] = true;

登录到phpLDAPadmin Web界面

将必要的配置更改为phpLDAPadmin后,我们现在可以开始使用它了。 浏览您的网页浏览器中的应用程序。 请务必将您的域替换为以下突出显示的区域:

https://example.com/phpldapadmin

登录DN是您将要使用的用户名。 它包含帐户名称作为cn=部分,您为服务器选择的域名分为dc=部分,如上述步骤所述。 我们在安装过程中设置的默认管理员帐户称为admin ,因此在我们的示例中,我们将键入以下内容:

cn=admin,dc=example,dc=com

为您的域输入适当的字符串后,键入您在配置期间创建的管理员密码,然后单击验证按钮。

您将被带到主界面:

您将登录到phpLDAPadmin界面。 您可以添加用户,组织单位,组和关系。

配置StartTLS LDAP加密

ldap 自助密码修改程序 self-service-password

https://ltb-project.org/doku.php

(基本上,配置一遍,就知道是怎么回事了)