OpenLDAP教程-了解术语和用法

时间:2020-01-09 10:41:11  来源:igfitidea点击:

但是首先重要的是要阐明LDAP的基础知识,例如LDAP是什么?
为什么我们使用LDAP?
LDAP使用什么术语?
本文是面向初学者的LDAP教程,使他们可以在实际开始从事此领域工作之前简要了解LDAP。

LDAP初学者教程

"轻型目录访问协议(LDAP)"实际上是一组开放协议,用于通过网络访问和修改集中存储的信息。
LDAP基于X.500标准(X.500是国际标准化组织[ISO]标准,该标准定义了分布式目录服务的整体模型),但是它是原始标准的轻量级版本。
RFC 2251解释了这种关系:" LDAP旨在提供对支持X.500模型的目录的访问,而不会引起X.500目录访问协议的资源需求。
与传统数据库一样,可以查询LDAP数据库以获取其存储的信息。
"

LDAP基础

现在,让我们在面向初学者的LDAP教程中了解有关LDAP的一些基础知识。
LDAP是一种协议,用于访问专门定制的数据库,该数据库用于多种用途,例如目录服务。
该目录可用于存储各种信息。
该目录可以视为各种数据库。
但是与传统数据库不同,LDAP数据库特别适合于读取,搜索和浏览操作,而不是写入操作。
LDAP的亮点在于阅读。

以下是一些流行的LDAP实现:

  • OpenLDAP,一个开源LDAP套件

  • Microsoft活动目录

  • 389目录服务器

  • IBM安全目录服务器

  • NetIQ eDirectory

客户端/服务器模型

与大多数网络服务一样,LDAP遵循通常的客户端/服务器范例。
客户端和服务器之间的典型交互如下所示:

  • LDAP客户端应用程序连接到LDAP服务器。
    此过程也称为"绑定到服务器"。

  • 根据服务器上配置的访问限制,LDAP服务器接受或者拒绝绑定/连接请求。

  • 假设服务器接受,则客户端可以选择查询目录服务器,浏览服务器上存储的信息,或者尝试修改/更新LDAP服务器上的信息。

  • 同样,基于访问限制,服务器可以允许或者拒绝客户端尝试的任何操作。
    如果服务器无法回答请求,则它可以将客户端转发或者引荐给另一个对请求具有更权威响应的上游LDAP服务器。

LDAP的用途

让我在LDAP教程初学者文章中为我们提供LDAP的一些用法。
LDAP是一种分布式目录服务,可以用作各种类型信息的存储。
几乎所有类型的信息都可以存储在LDAP目录中-信息的性质与纯文本信息,图像,二进制数据或者公共密钥证书等不同。

多年来,已经创建了各种LDAP模式,以允许在LDAP目录中存储不同的数据源。
以下是LDAP的一些示例用法:

  • LDAP可以作为组织的完整身份管理解决方案。
    它可以为用户提供身份验证和授权服务。
    实际上,由网络信息服务(NIS)提供的服务可以完全由LDAP代替。

  • DNS记录中存储的信息可以存储在LDAP中。

  • LDAP可用于为组织提供"黄页"服务(例如,用户或者员工的联系信息,例如电话号码,地址,部门等)。

  • 邮件路由信息可以存储在LDAP中。

  • 存在一个Samba模式,该模式允许Samba服务器在LDAP中存储大量对象属性。
    这使得Samba可以在需要冗余和复制的环境中充当Microsoft Windows域控制器的可靠替代品。

LDAP术语

如果我们要精通LDAP口语,那么我们可能也了解LDAP的基本技术行话。
在本文的LDAP初学者教程中,我尝试总结了LDAP配置中一些最常用的术语。

  • 条目(或者对象)-LDAP目录中的一个单元。
    每个条目都通过其专有名称(DN)进行限定。
    这是一个例子:
dn: uid=yyang,ou=sales,dc=example,dc=com
  • 属性-这些是与条目相关的信息,例如组织的地址或者员工的电话号码。

  • objectClass-这是一种特殊的属性类型。
    LDAP中的所有对象都必须具有" objectClass"属性。
    " objectClass"定义指定每个LDAP对象所需的属性,并指定条目的对象类。
    客户端可以修改该属性的值,但不能删除objectClass属性本身。

" objectClass"定义本身存储在" schema"文件中。

  • Schema-规则的集合,用于确定目录的结构和内容。
    模式包含属性类型定义," objectClass"定义和其他信息。

该模式列出了每种对象类型的属性以及这些属性是必需的还是可选的。
模式通常存储在纯文本文件中。

以下是一些架构示例:

  • core.schema-定义基本的LDAPv3属性和对象。
    它是OpenLDAP实现中必需的核心架构。

  • inetorgperson.schema-定义inetOrgPerson对象类及其相关属性。
    该对象通常用于存储人们的联系信息。

  • LDIF-代表LDAP数据交换格式。
    它是LDAP条目的纯文本文件。
    用于向LDAP服务器导入数据或者从LDAP服务器导入数据的文件应采用这种格式。
    LDAP服务器之间用于复制的数据也采用这种格式。

OpenLDAP

默认情况下,Linux系统保留所有用户的本地注册表。
该注册表是/etc/passwd文件。
在此文件中,我们可以看到每个注册用户的一行。
因此,为了访问计算机,我们必须在该计算机中定义一个用户。
当我们只有几台计算机时,这是可以的,但是如果我们有数十台或者数百台计算机,那么创建新用户或者更改所有用户的密码可能是一场噩梦。

解决方案是集中用户帐户管理,即拥有一个公共数据库,该数据库中保留与用户帐户有关的所有信息。
有很多方法可以完成此操作,但当今可能最常用的是轻量级目录访问协议(LDAP),它是其多种变体之一。

LDAP保留了一个中央数据库,在该数据库中注册了用户,计算机以及所有的网络对象。
该协议有许多实现,例如Microsoft的Active Directory或者Novell的eDirectory。
其中我们将使用OpenLDAP,该协议的免费实现。

OpenLDAP是在Linux/UNIX系统上运行的LDAP的开源实现。
OpenLDAP是一套由slapd,slurpd,各种实用程序和库组成的程序套件,它们实现LDAP协议以及各种客户端和服务器端实用程序。

服务器端守护程序

服务器端包含两个主要的守护程序:

  • slapd:这是一个独立的LDAP守护程序,它侦听来自客户端的LDAP连接并响应通过这些连接接收到的LDAP操作。

  • slurpd:这是一个独立的LDAP复制守护程序,用于将更改从一个扩展数据库传播到另一个扩展数据库。
    此守护程序用于将一台LDAP服务器的更改同步到另一台LDAP服务器。
    仅在使用多个LDAP服务器时才需要。