`
zl198751
  • 浏览: 279554 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

OpenLDAP配置以及ldap结构设计

    博客分类:
  • LDAP
阅读更多

openldap 相关书籍:

 

OpenLDAP2.4管理员指南
http://www.imxmpp.com/xmppfy/index_58E811B3.php#.E7.BC.96.E8.AF.91.E5.92.8C.E5.AE.89.E8.A3.85OpenLDAP.E8.BD.AF.E4.BB.B6

 

OpenLDAP安装

http://qingfeng825.iteye.com/blog/735471

 

OpenLDAP2.1 管理员指南(附件中)

OpenLDAP2Admin.zip

 


openldap client(JXplorer
):
http://blog.csdn.net/zhangjunfangkaixin/archive/2009/03/10/3976675.aspx

 

文章包括:

1。openLDAP数据库配置

2。openLDAP数据库实例

 


 

OpenLDAP

 

objectClass有着严格的等级之分,最顶层的类是top和alias。例 如,organizationalPerson这个objectClass隶属于Person,而Person又是top的子类。

    objectClass大致分为三类:结构型的(如:person和organizationUnit)、辅助型的 (如:extensibeObject)和抽象型的(这类不能直接使用

 

7.数据库创建和维护工具

本节将告诉你如何从草稿创建slapd数据库,以及如何在遇到问题的时候解决问题。有两种方式创建数据库。首先,你可以使用LDAP在线创建数据库。如果 使用的是这种方式,你只需要简单的启动slapd并且用你的客户端添加条目就行了。这种方式对相对比较小的数据库是很合适的(根据你的需要,可能是几百或 者几千条)。这种方式仅仅工作在支持更新操作的数据库之下。

第二种创建数据库的方式是用slapd自带的特殊工具脱机创建。这种方式最适合于当你有好几千个条目要创建的情况,--如果你用前一种方式来创建所需要的 时间无法接受,或者是因为你想确保数据库在创建的时候不能被访问。注意不是所有的数据库都支持这种方式。

7.1 在LDAP上创建数据库

使用这种方式,你可以通过你喜欢的客户端(比如,ldapadd)来添加条目,这和你在数据库创建好之后添加条目的操作是一样的。你应当在启动slapd 之前确保下列选项已经在配置文件中做了设置。

        suffix <dn>;

如“通用数据库指令”一节中所述,这个选项定义了由这个数据库保存的条目。你应该把这个选项设置为你准备创建的目录子树的根DN。比如:

        suffix "dc=example,dc=com"

你应当确保指定了一个索引文件所在的目录。

        directory <directory>;

比如:

        directory /usr/local/var/openldap-data

你需要拥有足够的权限创建该目录以使slapd可以写入它。

你需要配置slapd以便你能够以一个有权限添加条目的目录用户连接到这个服务器上面。你可以把目录配置成支持超级用户或者根用户的形式。这是通过数据库 定义中的下面两个选项来实现的:

        rootdn <dn>;
        rootpw <passwd>;

比如:

        rootdn "cn=Manager,dc=example,dc=com"
        rootpw secret

这两个选项指定了一个DN和口令来验证超级用户条目(也就是说,这个条目可以做任何事)。无论条目和口令是否在数据库中实际存在,这里指定的条目和口令都 会起作用。这解决了“鸡和蛋的问题”--也就是如果条目还不存在的话如何验证有权添加条目的根用户条目。

最后,你要确保数据库定义当中包含了你想要的索引定义:

        index {<attrlist>; | default} [pres,eq,approx,sub,none]

比如,要为cn, sn, uid 和 objectclass属性建立索引,应当使用下面的index指令:

        index cn,sn,uid pres,eq,approx,sub
        index objectClass eq

这将为cn, sn, 和 uid属性创建presence, equality, approximate, 和 substring索引,为objectClass属性创建equality索引。注意到不是对任何属性类型都有全部的索引类型可用。参看“slapd配 置文件”一节可获得有关该选项的更多信息。

一旦你已经按照你的要求完成了配置,就启动slapd,同时用你的LDAP客户端连接到服务器上,开始添加条目。比如,要用ldapadd工具添加一个组 织的条目和其内一个成员的条目,你可以创建一个名为entries.ldif的LDIF文件如下:

        # Organization for Example Corporation
        dn: dc=example,dc=com
        objectClass: dcObject
        objectClass: organization
        dc: example
        o: Example Corporation
        description: The Example Corporation

        # Organizational Role for Directory Manager
        dn: cn=Manager,dc=example,dc=com
        objectClass: organizationalRole
        cn: Manager
        description: Directory Manager

然后使用类似下面的命令实际创建数据库:

        ldapadd -f entries.ldif -x -D "cn=Manager,dc=example,dc=com" -w secret

上面的这个命令假定所有的选项都是按照上面的示例进行设置的。

7.2 脱机创建数据库

第二中创建数据库的方式是使用下面所列的slapd数据库工具脱机创建数据库。这种方式最适合于有好几千个条目需要创建的情况,因为如果还是按照上面所描 述的方式来添加的话,花费的时间将是不可接受的。这些工具读取slapd配置文件和一个输入文件,这个输入文件包含着要添加的数据库条目的文本表示。对支 持这些工具的数据库,它们将直接生成数据库文件(否则你就必须要用在线方式添加)。你要首先确保下面几个重要的配置选项在配置文件的数据库定义部分做了设 置:

        suffix <dn>;

如“通用数据库指令”一节中所述,这个选项定义了由这个数据库保存的条目。你应该把这个选项设置为你准备创建的目录子树的根DN。比如:

        suffix "dc=example,dc=com"

你应当确保指定了一个索引文件所在的目录。

        directory <directory>;

比如:

        directory /usr/local/var/openldap-data

最后,你要确保数据库定义当中包含了你想要的索引定义:

        index {<attrlist>; | default} [pres,eq,approx,sub,none]

比如,要为cn, sn, uid 和 objectclass属性建立索引,应当使用下面的index指令:

        index cn,sn,uid pres,eq,approx,sub
        index objectClass eq

这将为cn, sn, 和 uid属性创建presence, equality, approximate, 和 substring索引,为objectClass属性创建equality索引。注意到不是对任何属性类型都有全部的索引类型可用。参看“slapd配 置文件”一节可获得有关该选项的更多信息。

7.2.1. slapadd程序

一旦你已经按照你的要求完成了配置,你就应当运行slapadd程序创建主(primary)数据库和相应的索引:

        slapadd -l <inputfile>; -f <slapdconfigfile>;
                [-d <debuglevel>;] [-n <integer>;|-b <suffix>;]

各项参数的意义如下:

        -l <inputfile>;

指定了LDIF输入文件,这个文件包含了要以文本格式添加到数据库中的条目(在”LDIF文本条目格式“一节有详细描述)。

        -f <slapdconfigfile>;

指定了slapd的配置文件,该配置文件指明了在什么地方创建什么样的索引,等等。

        -d <debuglevel>;

打开调试开关,调试级别由<debuglevel>;指定。调试级别和slapd的调试级别是一样的。详情请参看“运行slapd”章节的 “命令行选项”小节。

        -n <databasenumber>;

一个可选的参数,用来指定修改哪一个数据库。在配置文件中最先出现的数据库编号为1,第二个为2,以此类推。默认情况下,会使用配置文件中的第一个数据 库。注意该选项不应该和-b选项同时使用。

        -b <suffix>;

一个可选的参数,用来指定修改哪一个数据库。通过把所给的后缀和数据库定义中的suffix指令匹配来决定数据库的序号。注意该选项不应该和-n选项同时 使用。

7.2.2. slapindex程序

有时候可能需要重新生成索引(比如在修改了slapd.conf之后)。这可以通过slapindex程序来完成。slapindex是这样用的:

        slapindex -f <slapdconfigfile>;
                [-d <debuglevel>;] [-n <databasenumber>;|-b <suffix>;]

这里的-f, -d, -n 和 -b选项和slapadd程序当中的是一样的。slapindex在当前数据库内容的基础上重建所有索引。

7.2.3. slapcat程序

slapcat程序是用来将数据库转储(dump)到LDIF文件中。当你想把数据库以直观可读的方式进行备份或者你想脱机编辑数据库的时候,这都会是很 有用的。这个是程序是像下面这样用的:

        slapcat -l <filename>; -f <slapdconfigfile>;
                [-d <debuglevel>;] [-n <databasenumber>;|-b <suffix>;]

这里的-n 或者 -b是用来选取slapd.conf中定义的数据库的。对应的LDIF输出到标准输出上或者输出到-l选项指定的文件中。

7.3 LDIF文本的条目格式

LDAP数据交换格式(LDIF)是用来简单的文本格式来表示LDAP条目的。本节将给出LDIF条目格式的一个简短描述,LDIF格式的详细情况在 ldif手册和RFC2849技术手册中有更详尽的补充说明。

条目的基本格式是这样的:

        # comment
        dn: <distinguished name>;
        <attrdesc>;: <attrvalue>;
        <attrdesc>;: <attrvalue>;

        ...

以'#'开头的行是注释。属性类型可以是像cn 或者 objectClass 或者 1.2.3(与属性类型相对应的OID)或者可以包含像cn;lang_en_US 或者 userCertificate;binary这样的选项。

一个以单个空格或者制表符开头的新行是接着上一行的。比如:

        dn: cn=Barbara J Jensen,dc=example,dc=
         com
        cn: Barbara J
          Jensen

等价于:

        dn: cn=Barbara J Jensen,dc=example,dc=com
        cn: Barbara J Jensen

多个属性值可以在不同的行上指定。比如,

        cn: Barbara J Jensen
        cn: Babs Jensen

如果属性值<attrvalue>;包含不可打印字符或者以空格,冒号(':'),,小于号('<')开头的话,那么属性描 述<attrdesc>;后跟的将是两个冒号与所给值的base64编码。比如,值" begins with a space"将会被编码成下面这样:

        cn:: IGJlZ2lucyB3aXRoIGEgc3BhY2U=

你也可以指定一个包含属性值的URL。比如,下面的示例指定jpegPhoto应该来源于/path/to/file.jpeg。

        cn:< file:///path/to/file.jpeg

相同的LDIF文件中的多个条目是用空行分隔开的。这里有一个包含三个条目的LDIF文件示例。

        # Barbara's Entry
        dn: cn=Barbara J Jensen,dc=example,dc=com
        cn: Barbara J Jensen
        cn: Babs Jensen
        objectClass: person
        sn: Jensen

        # Bjorn's Entry
        dn: cn=Bjorn J Jensen,dc=example,dc=com
        cn: Bjorn J Jensen
        cn: Bjorn Jensen
        objectClass: person
        sn: Jensen
        # Base64 encoded JPEG photo
        jpegPhoto:: /9j/4AAQSkZJRgABAAAAAQABAAD/2wBDABALD
         A4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQ
         ERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVG

        # Jennifer's Entry
        dn: cn=Jennifer J Jensen,dc=example,dc=com
        cn: Jennifer J Jensen
        cn: Jennifer Jensen
        objectClass: person
        sn: Jensen
        # JPEG photo from file
        jpegPhoto:< file:///path/to/file.jpeg

注意到Bjorn条目中的jpegPhoto是base 64编码而Jennifer条目中的jpegPhoto是从URL指定的位置获取的。

-----------------------------------------------------------------------------------------------------------
注意:在LDIF文件中行末的空格是没有被截去的。行间的多个空格也不被压缩。如果你本意不是想让她们出现在那儿,那就不要把它们放进去。

 

简单LDAP设计实例:

dn: dc=ies,dc=com
objectClass: dcObject
objectClass: organization
dc: ies
o: ies

dn: ou=Users,dc=ies,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Users

dn: cn=tina,ou=Users,dc=ies,dc=com
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: tina
description: Test Role
description: Test View
ou: Tina
sn: Wei
st: tinawei@ies.com
street: Tina Wei
userPassword:: e01ENX1YMDNNTzFxblpkWWRneWZldUlMUG1RPT0=


dn: ou=Roles,dc=ies,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Roles

dn: cn=Test Role,ou=Roles,dc=ies,dc=com
objectClass: organizationalRole
objectClass: top
cn: Test Role
ou: ROLE1

dn: ou=Views,dc=ies,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Views

dn: cn=Test View,ou=Views,dc=ies,dc=com
objectClass: organizationalRole
objectClass: top
cn: Test View
ou: TEST

 

分享到:
评论

相关推荐

    OpenLDAP-Admin-Guide.pdf open ldap 官网2.6.2 版本操作指南

    该文档将详细介绍如何安装、配置和管理OpenLDAP,包括设置基本目录结构、创建和管理用户及组、配置安全性、备份和恢复策略以及性能优化等方面。它还涵盖了OpenLDAP与其他系统(如Samba、Kerberos等)的集成,以及...

    ldap openldap

    **LDAP与OpenLDAP** LDAP(轻量级目录访问协议)是一种开放的标准,用于在互联网上存储和检索目录信息。它允许用户和应用程序通过统一的接口访问分布式目录服务,支持多种认证方式,包括简单的密码、证书等。LDAP...

    openldap,ldapbrowser,mozillaOrgPerson.schema

    这些是IT领域中与目录服务、LDAP(轻量级目录访问协议)以及特定的数据结构定义相关的知识点。 1. **OpenLDAP**:OpenLDAP是一个开源的实现,它遵循了LDAP协议,用于创建和管理分布式目录服务。这种服务允许用户...

    ldap教程,openLDAP实战指南

    OpenLDAP项目包括用于管理LDAP目录信息的服务器端软件(slapd)以及用于访问LDAP信息的客户端库和工具。它支持多种编程语言和多种平台,因此在众多环境中都可部署。 LDAP教程,openLDAP实战指南,这部教程着重于...

    openldap配置

    ### OpenLDAP配置与系统用户认证 #### 一、OpenLDAP简介与目录服务概念 ##### 1.1 什么是目录服务? 目录服务是一种用于存储、管理和检索有关网络对象(如用户、组、计算机等)信息的服务。它提供了一种组织结构化...

    windows下搭建并配置OpenLDAP服务器

    OpenLDAP(Lightweight Directory Access Protocol)是一个开源的LDAP服务器,广泛用于存储和检索用户账户信息、组织结构数据以及其它元数据。下面我们将详细探讨如何在Windows系统上安装和配置OpenLDAP,以及如何...

    Centos7 安装配置OpenLdap服务端及phpadmin

    本文将详细介绍如何在CentOS 7上安装并配置OpenLDAP服务端以及OpenLDAP管理工具,包括CA认证配置和PHPLdapadmin的安装与配置。 #### 二、安装与配置OpenLDAP服务端 1. **配置YUM源** 首先需要确保系统可以从可靠...

    openLdap_admin 介绍如何管理、配置、维护OpenLDAP

    `openLdap_admin`是一个图形化的管理工具,专为简化OpenLDAP的配置和管理而设计。它提供了一个直观的界面,使得管理员可以轻松地进行以下操作: 1. **创建和管理条目**:你可以通过openLdap_admin创建新的LDAP条目...

    ldap安装与客户端ldapadmin windows

    总之,安装和配置LDAP服务器,并使用像LdapAdmin这样的客户端工具,对于管理和维护企业或组织的用户身份和权限信息至关重要。理解LDAP的基本概念和操作方法,将有助于你有效地管理Windows环境下的目录服务。

    构建基于LDAP的地址薄

    安装后,需要配置LDAP服务器的主配置文件`slapd.conf`,设置数据存储位置、安全设置、监听端口等。此外,还需要创建一个初始的LDAP目录结构,这通常通过命令行工具如`ldapadd`完成。 **填充LDAP目录** 添加数据到...

    CAS_LDAP.rar_CAS SSO_cas ldap_cas openldap_cas_ldap_soa和sso

    2. **配置CAS服务器**: 在CAS服务器上,需要配置LDAP连接参数,如URL、端口、基DN(Distinguished Name)、管理员凭证等。同时,设置认证策略,指定如何从LDAP检索和验证用户凭证。 3. **设置用户属性**: 在CAS中,...

    OpenLDAPforWindows+LdapBrowser_282+OpenLdap使用手册

    OpenLDAP for Windows与LdapBrowser 282是开源LDAP(轻量级目录访问协议)在Windows环境下的实现和管理工具。OpenLDAP是一款强大的目录服务软件,它允许组织存储和检索用户、组、网络设备等对象的信息。LdapBrowser...

    Ldap And Openldap

    通过理解LDAP的基本原理以及OpenLDAP的功能特性,可以帮助组织更好地利用这些技术来提升自身的IT基础设施和服务水平。无论是对于初学者还是经验丰富的IT专业人士来说,了解这些知识点都是非常有价值的。

    openldap-2.0.19.tgz_ldap_openldap

    LDAP是一种应用广泛的网络协议,它允许用户查询和修改存储在网络目录中的结构化信息。这种信息通常包括用户账户、组、联系人、资源定位器等。通过使用LDAP,组织可以集中管理用户认证、授权和信息检索,极大地提高了...

    ldap6配置文档

    2. **配置LDAP搜索参数**:定义搜索基础DN以及其他搜索参数,如搜索过滤器、返回属性等。 3. **实现认证逻辑**:编写代码实现用户认证流程,通常包括绑定(Bind)操作来验证用户凭证。 4. **处理查询结果**:设计...

    ldap安装配置新手必看

    - `openldap`: 包含OpenLDAP配置文件、库和文档。 - `openldap-servers`: 包含slapd和slurpd服务器、迁移脚本及相关文件。 - `openldap-clients`: 包含用于访问和修改OpenLDAP目录的客户机程序。 2. **配置LDAP...

    OpenLDAP quickstart 配置文件

    3. **OpenLDAP配置文件**: - `slapd.conf`:老版本OpenLDAP的配置文件,但已被`slapd.d`目录下的多文件结构取代,提高了安全性和可维护性。 - `slapd.d`:包含了OpenLDAP的运行时配置。在这个目录下,每个子目录...

    OpenLDAP yum安装配置

    OpenLDAP(Lightweight Directory Access Protocol)是一款开源的LDAP( Lightweight Directory Access Protocol)服务器软件,用于组织和管理分布式网络中的用户、计算机和其他资源的信息。在CentOS8这样的Linux...

    aix配置openldap

    最后,测试OpenLDAP配置,确保可以从其他系统成功连接并执行查询。你可以使用`ldapsearch`或`ldapmodify`等工具进行测试。 在IBM_AIX配置OPENLDAP的压缩包中可能包含了详细步骤的文档、示例配置文件以及用于测试的...

Global site tag (gtag.js) - Google Analytics