zoukankan      html  css  js  c++  java
  • LDAP入门与OpenLDAP使用配置

    LDAP入门与OpenLDAP使用配置

    1、LDAP简介

    LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务。目录服务是一种特殊的数据库系统,专门针对读取,浏览和搜索操作进行了特定的优化。目录一般包含描述性的,基于属性的信息并支持精细复杂的过滤能力。目录一般不支持通用数据库针对大量更新操作需要的复杂事务管理或回卷策略。目录服务的 更新一般都非常简单。这种目录可以存储包括个人信息、web链结、jpeg图像等各种信息。为了访问存储在目录中的信息,需要使用运行在TCP/IP之上的访问协议——LDAP。

    LDAP目录中的信息按照树型结构组织,具体信息存储在条目(entry)数据结构中。条目相当于关系数据库中表的记录;条目是具有区别名DN(Distinguished Name)的属性(Attribute)集合,DN是用来引用条目的。属性由类型(Type)和一个或多个值(Values)组成,类型规定了属性允许存放的值的约束条件,同时也规定了该类型数据进行比较时的规则。LDAP使用语法(Syntax)这一概念表示属性的取值约束和比较规则,常用的语法是字符型。

    LDAP中条目的组织一般按照地理位置和组织关系进行组织,非常的直观。LDAP把数据存放在文件中,为提高效率可以使用基于索引的文件数据库。类型的一个例子如mail,其值一个电子邮件地址。LDAP的信息是以树型结构存储的,在树根一般定义国家(c=CN)或域名(dc=com),在其下则往往定义一个或多个组织(organization)(o=Acme)或组织单元(organizational units) (ou=People)。一个组织单元可能包含诸如所有雇员、大楼内的所有打印机等信息。

    在属性基础上LDAP使用schema进一步约束目录条目。schema是一种类型定义机制,每种类型定义又称为objectclass,它规定该类型目录条目实例必须的和可选的属性等约束。与面向对象的编程语言类似,objectclass支持继承,且所有的objectclass都是top的子类型。常见的objectclass有InetOrgPerson、OrganizationalUnit等。

    2、OpenLDAP安装部署

    2.1、下载地址

    windows平台下载地址:http://www.userbooster.de/download/openldap-for-windows.aspx

    linux平台下载地址:http://www.openldap.org/

    2.2、安装

    安装提示默认安装即可。

    2.3、配置

    (1)打开OPENLDAP_HOME/sldap.conf文件,找到以下行:

    include        ./schema/core.schema

    在后面添加新的schema,schema定义在OPENLDAP_HOME/schema文件夹中。

    在sldap.conf文件中找到以下两行:

    suffix        "dc=maxcrc,dc=com"

    rootdn        "cn=Manager,dc=maxcrc,dc=com"

    修改为:

    suffix        "dc=esrigz,dc=com"

    rootdn        "cn=Manager,dc=esrigz,dc=com"

    suffix中的定义必须与ldif文件中定义的一致。

    在该配置文件中还有一个参数rootpw,这个密码是cn=Manager的密码,在安装时已定义。

    (2)启动OpenLDAP

    打开控制台,定位到OpenLDAP安装目录下,执行命令启动OpenLDAP:

    slapd –d 1

    可以看到控制台下打印一片信息,openldap安装时选用的Berkeley DB 数据库存储目录数据。

    2.4、建立条目并导入ldif文件

    新建ldif文件(纯文本格式),内容如下:

    dn: dc=esrigz,dc=com

    objectclass: domain

    objectclass: top

    o: esri guangzhou

    dc: esrigz

       

    dn: ou=Developer,dc=esrigz,dc=com

    objectclass: organizationalUnit

    ou: Developer

    description: Container for developer entries

       

    dn: ou=Manager,dc=esrigz,dc=com

    objectclass: organizationalUnit

    ou: Manager

    description: Container for manager entries

       

    dn: uid=yun,ou=Developer,dc=esrigz,dc=com

    uid: yun

    objectClass: inetOrgPerson

    mail: yun@mail.com

    userPassword: 123456

    labeledURI: http://www.esri.com

    sn: xin

    cn: yun xin

       

    dn: uid=xinli,ou=Manager,dc=esrigz,dc=com

    uid: xinli

    objectClass: inetOrgPerson

    userPassword: 123456

    labeledURI: http://www.esri.com

    sn: wu

    cn: xinli wu

    注意:格式要求严格,每行开头和结尾不能有空格。

    执行命令导入ldif文件:

    ldapadd -D "cn=Manager,dc=esrigz,dc=com" -w secret -f test.ldif

    参数说明:

    • -D 指定管理员DN(与slapd.conf中配置的一致)
    • -W 大写W表示回车后根据提示输入密码,可以使用小写的-w password 直接输入密码
    • -f 需要导入数据LDIF的文件名

    详细的参数说明可使用ldapadd --?查看。

    执行命令查看导入的信息:

    ldapsearch –x –b "dc=esrigz,dc=com"

    2.5、LdapBrowser客户端部署

    解压双击lbe.bat即可运行。

    点击Fetch DNs会自动获取DN信息。

    使用manager账号访问。

  • 相关阅读:
    mongodb添加延时节点
    AFNetworking 遇到错误 Code=-1016 "Request failed: unacceptable content-type: text/plain"
    使用cocoa捕获dock栏中的“退出”事件,解决qt开发的应用程序退出异常的问题
    【Grails 代理Proxy设置】部署Grails遇到Error Resolve error obtaining dependencies:错误,及解决方法
    【转】MongoDB 3.0 正式版本即将发布,强力推荐
    求数组的一个最大子数组
    MergeSort 归并排序(java)
    java查询几个菜单下的所有下级菜单
    InsertionSort 直接插入排序(java)
    sublime3配置java开发环境
  • 原文地址:https://www.cnblogs.com/xinligis/p/3950791.html
Copyright © 2011-2022 走看看