《Linux/UNIX OpenLDAP实战指南》——1.4 OpenLDAP目录条目概述

1.4 OpenLDAP目录条目概述

1.4.1 objectClass分类
objectClass类通常分三类:结构型、辅助型、抽象型。

结构型(structural):如person和organizationUnit。
辅助型(auxiliary):如extensibleObject。
抽象型(abstract):如top,抽象型的objectClass不能直接使用。
1.4.2 OpenLDAP常见的objectClass
OpenLDAP常见的objectClass类如下所示。

  • alias
  • applicationEntity
  • dSA
  • applicationProcess
  • bootableDevice
  • certificationAuthority
  • certificationAuthority-V2
  • country
  • cRLDistributionPoint
  • dcObject
  • device
  • dmd
  • domain
  • domainNameForm
  • extensibleObject
  • groupOfNames
  • groupOfUniqueNames
  • ieee802Device
  • ipHost
  • ipNetwork
  • ipProtocol
  • ipService
  • locality
  • dcLocalityNameForm
  • nisMap
  • nisNetgroup
  • nisObject
  • oncRpc
  • organization
  • dcOrganizationNameForm
  • organizationalRole
  • organizationalUnit
  • dcOrganizationalUnitNameForm
  • person
  • organizationalPerson
  • inetOrgPerson
  • uidOrganizationalPersonNameForm
  • residentialPerson
  • posixAccount
  • posixGroup
  • shadowAccount
  • strongAuthenticationUser
  • uidObject
  • userSecurityInformation

如上对象类由OpenLDAP官方所提供,以满足大部分企业的需求,OpenLDAP还支持系统所提供的对象类,例如sudo、samba等。后续章节将对企业中常用的对象类进行阐述并通过案例演示其实现过程,让读者熟悉其原理及实现过程。

当OpenLDAP官方以及系统提供的对象类无法满足企业的特殊需求时,读者可根据OpenLDAP schema内部结构制定schema规范并生成对象类,来满足当前需求。

1.4.3 objectClass详解
在OpenLDAP目录树中,每个条目必须包含一个属于自身条件的对象类,然后再定义其条目属性及对应的值。

OpenLDAP条目的属性能否添加取决于条目所继承的objectClass是否包含此属性。objectClass具有继承关系,也就是说,条目添加的属性最终取决于自身所继承的所有objectClass的集合。如果所添加的属性不在objectClass范围内,此时目录服务器不允许添加此属性。如果要添加,就必须添加schema文件产生objectClass所对应的属性。objectClass和Attribute由schema文件来规定,存放在/etc/openldap/schema目录下,schema文件规范objectClass的构成以及属性和值在目录树中的对应关系。后面章节会介绍如何通过定义schema文件来产生objectClass,从而生成所需要的属性。

每一个属性和值将用作每个条目在目录树中存储信息的标准,例如能包含哪些属性信息。对于objectClass的理解,读者可以将objectClass的属性值理解为一种模板。模板定义哪些信息可以存取,哪些信息不可以存储在目录树中。

1.4.4 objectClass案例分析
下面给出两个对象类案例分析示例。

objectClass案例分析示例1
所有的objectClass定义都存放在/etc/openldap/schema/*.schema文件中。例如,person属性的定义就存放在core.schema文件中。

objectclass ( 2.5.6.6 NAME 'person'
        DESC 'RFC2256: a person'
        SUP top STRUCTURAL
        MUST ( sn $ cn )
        MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )

分析:

如果要定义person类型,需要定义顶级为top,并且必须定义sn和cn两个属性,还可以附加userPassword、telephoneNumber、seeAlso、description 4个属性值。邮件地址、国家等属性不可以定义,除非读者添加相关的objectClass条目,否则提示相关属性不允许添加。

objectClass案例分析示例2
objectClass: (2.5.6.0 NAME 'top'
ABSTRACT
MUST (objectClass))   

objectClass: ( 2.5.6.6 NAME 'person'
SUP top STRUCTURAL
MUST (sn $ cn )
MAY (userPassword $ telephoneNumber $
seeAlso $ description ))

分析:

对于此案例,如果要定义top属性,必须定义一个objectClass属性。因为此案例中还定义了person属性,所以要必须定义sn和cn属性,以及可以附加的属性(userPassword、telephoneNumber、seeAlso、description)。此案例中必须要定义的有3个属性分别是objectClass、sn以及cn。通过此案例下一级的objectClass可以继承上一级objectClass的属性信息。

注:
根据定义,对于不同的objectClass,属性的相关信息也不同。希望通过上面两个案例的介绍,能让读者了解objectClass的含义以及属性的含义。

时间: 2025-01-29 23:05:43

《Linux/UNIX OpenLDAP实战指南》——1.4 OpenLDAP目录条目概述的相关文章

《Linux/UNIX OpenLDAP实战指南》——导读

前言 随着互联网行业的不断发展,企业也在不断壮大,为了满足客户需求,后端服务器数量日益增加.此时对于后端运维管理人员而言,工作量也在不断增加,许多资源管理人力已经无法满足,反复的工作也使运维管理人员变得枯燥无味.此时开源自动化运维管理就进入运维人员眼线,例如账号统一管理的OpenLDAP.自动化部署的Puppet.自动化安装服务器的Cobbler.云管理的OpenStack等. 由于作者工作环境设备数量达1000+.应用管理平台40套+,同时由于服务器设备的增加,账号的数量也在不断增加,账号管理

《Linux/UNIX OpenLDAP实战指南》——2.5 OpenLDAP单节点配置案例

2.5 OpenLDAP单节点配置案例 2.5.1 安装环境规划 安装环境的拓扑图如图2-1所示. 安装环境要求如下. 环境平台:VMware ESXi 5.0.0 系统版本:Red Hat Enterprise Linux Server release 6.5 (Santiago) 软件版本:OpenLDAP-2.4.23-32 IP地址及主机名规划如表2-1所示. OpenLDAP相关软件包套件如表2-2所示. 2.5.2 主机名规划配置 LDAP服务端和客户端主机名称及对应的IP地址解析服

《Linux/UNIX OpenLDAP实战指南》——2.2 OpenLDAP安装

2.2 OpenLDAP安装 2.2.1 OpenLDAP安装方式 在UNIX发行操作系统环境下安装OpenLDAP软件一般有两种方式:一种是通过源码编译安装,另一种则是通过光盘自带的rpm软件包进行安装.下面会分别介绍这两种安装方式.安装OpenLDAP服务器需要提供守护进程和传统的OpenLDAP管理配置工具,主要是slapd和ldap-utils套件. 2.2.2 OpenLDAP安装步骤 要安装OpenLDAP,步骤如下. 1)获取OpenLDAP软件包. 2)安装OpenLDAP软件包

《Linux/UNIX OpenLDAP实战指南》——2.3 Linux平台安装

2.3 Linux平台安装 2.3.1 yum用途及语法 yum仓库主要用于解决软件包依赖关系(这里以本地yum源为例进行配置). yum仓库配置文件的语法及参数如下. 1.yum配置文件语法 yum配置文件语法如下. # cat /etc/yum.repos.d/define.repo [repo_name] name= baseurl= enabled= gpgcheck= gpgkey= 2. yum配置文件语法解释 yum配置文件的语法解释如下. [repo_name] 含义:[ ]内是

《Linux/UNIX OpenLDAP实战指南》——2.4 OpenLDAP配置

2.4 OpenLDAP配置 在OpenLDAP 2.4版本中,配置OpenLDAP的方法有两种:一种通过修改配置文件实现配置,另一种通过修改数据库的形式完成配置. 通过配置数据库完成各种配置,属于动态配置且不需要重新启动slapd进程服务.此配置数据库(cn=config)包含一个基于文本的集合LDIF文件(位于 /etc/openldap/slapd.d目录下).当前仍然可以使用传统的配置文件(slapd.conf)方式进行配置,通过配置文件来实现slapd的配置方式.slapd.conf可

《Linux/UNIX OpenLDAP实战指南》——1.3 OpenLDAP schema概念

1.3 OpenLDAP schema概念 1.3.1 schema介绍及用途 schema是OpenLDAP软件的重要组成部分,主要用于控制目录树中各种条目所拥有的对象类以及各种属性的定义,并通过自身内部规范机制限定目录树条目所遵循的逻辑结构以及定义规范,保证整个目录树没有非法条目数据,避免不合法的条目存在目录树中,从而保障整个目录树信息的完整性.唯一性. 在OpenLDAP目录树中,schema用来指定一个条目所包含的对象类(objectClass)以及每一个对象类所包含的属性值(attri

《Linux/UNIX OpenLDAP实战指南》——2.9 OpenLDAP控制策略

2.9 OpenLDAP控制策略 2.9.1 通过slapd.conf定义用户策略控制 默认情况下,不允许OpenLDAP用户自身修改密码,仅管理员具有修改权限.为了提高个人账号的安全性,需要让用户自身可以修改并更新密码信息,不需要管理员干涉.具体步骤如下. 1)定义访问控制策略. 编辑slapd.conf配置文件,定位access行,添加如下内容. access to attrs=shadowLastChange,userPassword by self write #只允许自身修改 by *

《Linux/UNIX OpenLDAP实战指南》——1.9 本章总结

1.9 本章总结 本章介绍了OpenLDAP产品.功能及优点.适用场景,让读者慢慢对陌生而强大的自动化账号管理软件进行系统的了解.并针对OpenLDAP的组织架构.OpenLDAP关键术语(schema.objectClass.attribute.LDIF)及相关实现方式进行详细介绍.最后介绍企业中自动化运维解决方案. OpenLDAP术语对于后期高级配置以及应用平台集成起到非常重要的铺垫作用,希望读者能够认认真真阅读本章.

《Linux/UNIX OpenLDAP实战指南》——1.8 自动化运维解决方案

1.8 自动化运维解决方案 1.8.1 互联网面临的问题 当今局域网.互联网不断发展,其网络规模也在不断扩大,为了集中管理主机及其相关资源,我们可以通过DHCP及DNS服务器来自动分配IP地址.子网掩码.网关.主机名等相关网络配置信息.随着企业规模不断发展,系统规模不断增加,那么作为系统运维管理人员维护服务器有些力不从心,比如: 当公司业务不断发展,当前业务系统无法满足需求,这时该如何快速部署系统并且应用到当前的业务系统? 批量对业务系统进行变更以及管理,传统方式需要通过登录每台机器进行操作管理