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

LDAP概念和原理

 
阅读更多

http://blog.sina.com.cn/s/blog_6151984a0100ey3z.html

 

什么是目录服务?
    目录服务就是按照树状存储信息的模式

    目录服务的特点? 目录服务与关系型数据库不同?

  •  目录服务的数据类型主要是字符型, 而不是关系数据库提供的整数、浮点数、日期、货币等类型

为了检索的需要添加了BIN(二进制数据)、CIS(忽略大小写)、CES(大小写敏感)、TEL(电话型)等语法(Syntax)

  • 同样也不提供象关系数据库中普遍包含的大量的函数
  • 目录有很强的查询(读)功能,适合于进行大量数据的检索
  • 但目录一般只执行简单的更新(写)操作,不支持批量更新所需要的事务处理功能
  • 它主要面向数据的查询服务(查询和修改操作比一般是大于10:1),不提供事务的回滚(rollback)机制.
  • 目录具有广泛复制信息的能力,适合于多个目录服务器同步/更新



   常见的目录服务软件

  • X.500
  • LDAP
  • Actrive Directory,Microsoft公司
  • NIS


    LDAP
    LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写
    LDAP标准实际上是在X.500标准基础上产生的一个简化版本


    LDAP特点

  •     LDAP的结构用树来表示,而不是用表格。正因为这样,就不能用SQL语句了
  •     LDAP可以很快地得到查询结果,不过在写方面,就慢得多
  •     LDAP提供了静态数据的快速查询方式
  •     Client/server模型

    Server 用于存储数据
    Client提供操作目录信息树的工具
       这些工具可以将数据库的内容以文本格式(LDAP 数据交换格式,LDIF)呈现在您的面前

  •     LDAP是一种开放Internet标准,LDAP协议是跨平台的 的Interent协议

     它是基于X.500标准的, 与X.500不同,LDAP支持TCP/IP(即可以分布式部署)



    LDAP存储这样的信息最为有用: 也就是数据需要从不同的地点读取,但是不需要经常更新:

  •       公司员工的电话号码簿和组织结构图  
  •       客户的联系信息  
  •       计算机管理需要的信息,包括NIS映射、email假名,等等  
  •       软件包的配置信息  
  •       公用证书和安全密匙  


    Ldap的client /server结构

server   /usr/sbin/slapd -u ldap -h ldap:///
client 数据库操作client    用于对ldap server库进行操作
工具:ldapadd, ldapsearch
  实用client    用于将ldap server库在实际工作中使用
工具:radius+ldap, pam+ldap


  
    身份认证在LDAP中提供三种认证机制:

匿名    Ldapsearch –x -LLL
基本认证    通过用户名和密码进行身份识别,又分为简单密码和MD5密码认证
# ldapadd -x -D "cn=root,dc=otas,dc=cn" -W -f base.ldif
-x就是simple authetication

Enter LDAP Password: 输入admin123
 adding new entry "dc=otas,dc=cn"
 adding new entry "ou=People,dc=otas,dc=cn"
 adding new entry "ou=Group,dc=otas,dc=cn"
SASL    Simple Authentication and Secure Layer
LDAP提供的在SSL和TLS安全通道基础上进行的身份认证,包括数字证书的认证



    Ldap端口号(显然提供分布式ldap)——389,636
[root@vmmac modules]# cat /etc/services | grep ldap
ldap            389/tcp                         明文
ldap            389/udp                         明文
ldaps           636/tcp                         # LDAP over SSL
ldaps           636/udp                         # LDAP over SSL

    TLS 安全性
    分布式LDAP 是以明文的格式通过网络来发送信息的,包括client访问sldap的密码。TLS(SSL 的后继者,由OpenSSL 包)加密机制来解决这个问题。




    LDAP目录数据结构

  •     在LDAP中目录是按照树型结构组织——目录信息树(DIT)

          DIT是一个主要进行读操作的数据库

  •     DIT由条目(Entry)组成,条目相当于关系数据库中表的记录;

条目是具有分辨名DN(Distinguished  Name)的属性-值对(Attribute-value,简称AV)的集合


    在目录树中怎么组织数据  

cn=Fran Smith,ou=employees,dc=foobar,dc=com
              ------------ -----------------
                容器条目      BaseDN
--------------------------------------------
                DN
 


1。在UNIX文件系统中,最顶层是根目录(root),LDAP目录也通常用ROOT做根,通常称为BaseDN
2。因为历史(X.500)的原因,LDAP目录用OU(Organization Unit)从逻辑上把数据分开来。
   Ou 也是一种条目,容器条目
3.Ou 下就是真正的用户条目
LDAP概念和原理


   什么是dn?
    DN,Distinguished Name分辨名
    在LDAP中,一个条目的分辨名叫做“DN”,DN是该条目在整个树中的唯一名称标识
DN相当于关系数据库表中的关键字(Primary  Key);
是一个识别属性,通常用于检索
    常见的两种DN设置:

基于cn(姓名) cn=Fran Smith,ou=employees,dc=foobar,dc=com 
dn格式就是这么一大串
最常见的CN是/etc/group转来的条目
基于uid(User ID) uid=fsmith,ou=employees,dc=foobar,dc=com
最常见的UID是/etc/passwd和/etc/shadow转来的条目

 

[root@vmmac migration]# ldapsearch -x -LLL "uid=mac*"
dn: uid=mac,ou=People,dc=otas,dc=cn         唯一标适
uid: mac               
cn: mac                                  CN=Common Name 为用户名或服务器名
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: e2NyeXB0fSQxJGRTMFJoR1lwJHk0dkdKc1ByM3BlVmo4Z243dEhoQTA=
shadowLastChange: 13697
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 500
gidNumber: 500
homeDirectory: /home/mac

dn: uid=macg,ou=People,dc=otas,dc=cn
uid: macg
cn: macg
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: e2NyeXB0fSQxJGxHdE9tTW9vJHR0TFhpYXc2Y1VJb0RyWU9xUlVDSzE=
shadowLastChange: 14186
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 503
gidNumber: 503
homeDirectory: /home/macg

 
 
   Base DN (就是dc=,dc= )
LDAP目录树的最顶部就是根,也就是所谓的“Base DN"。
BaseDN通常采用两种格式:
 (假定我在名为FooBar 的电子商务公司工作,这家公司在Internet上的名字是foobar.com)

商务型格式——以X.500格式表示的基准DN o="FooBar, Inc.", c=US  
Internet型格式——以公司的Internet 域名地址表示的基准DN)
是最常用的格式
  dc=foobar, dc=com 


 

    LDIF 格式(此格式用于LDAP数据导入、导出)
LDIF是LDAP数据库信息的一种文本格式,包含:

  •     行界定
  •     冒号分隔
  •     属性-值对
[root@vmmac migration]# cat passwd.ldif
dn: uid=mac,ou=People,dc=otas,dc=cn
uid: mac
cn: mac
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$1$dS0RhGYp$y4vGJsPr3peVj8gn7tHhA0
gidNumber: 500
homeDirectory: /home/mac



    一个典型的 entry例子(一个属性可以有多个值)
Foobar, Inc.的员工Fran Smith的LDAP记录。

dn: uid=fsmith, ou=employees, dc=foobar, dc=com 
完整DN,包括在目录树中的完整路径

 objectclass: person 
 objectclass: organizationalPerson 
 objectclass: inetOrgPerson 
 objectclass: foobarPerson 
 uid: fsmith 
 givenname: Fran 
 sn: Smith 
 cn: Fran Smith 
 cn: Frances Smith 
CN有多个值
你可能只知道她的名字叫Fran,但是对人力资源处的人来说她的正式名字叫做Frances。因为保存了她的两个名字

 telephonenumber: 510-555-1234 
 roomnumber: 122G 
 o: Foobar, Inc. 
 mailRoutingAddress: fsmith@foobar.com 
 mailhost: mail.foobar.com 
 userpassword: {crypt}3x1231v76T89N 
 uidnumber: 1234 
 gidnumber: 1200 
 homedirectory: /home/fsmith 
 loginshell: /usr/local/bin/bash  




    属性/值搜索的时候是不区分大小写的
 某些特殊的属性(例如,password)在搜索的时候需要区分大小写。 


    /etc/passwd和/etc/group文件里的用户被migrate导入ldap后,会产生两条条目,分别属于People这个ou,和Group这个ou
显然属于People ou的条目对应passwd,属于Group ou的条目对应group

dn: cn=test1,ou=Group,dc=otas,dc=cn
objectClass: posixGroup
objectClass: top
cn: test1
userPassword:: e2NyeXB0fXg=
gidNumber: 500
    /etc/group
dn: uid=test1,ou=People,dc=otas,dc=cn
uid: test1
cn: test1
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: e2NyeXB0fSQxJHpGR3drdUdlJFIyZ3BZTlh3QzVPaXFOck1CTGU2QjE=
shadowLastChange: 14298
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 500
gidNumber: 500
homeDirectory: /home/test1
    /etc/passwd
/etc/shaddow



   user和group在ldap中的不同

  •     从属ou不同

user属于ou=People
group属于ou=Group

  •     dn表示方式不同

user的dn用uid打头:uid=news,ou=People,dc=otas,dc=cn
group的dn用cn打头:cn=news,ou=Group,dc=otas,dc=cn

分享到:
评论

相关推荐

    LDAP的概念和原理

    LDAP 概念和原理 LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)是一种 目录服务协议,用于提供快速的目录查询和检索功能。下面详细介绍LDAP的概念和原理。 目录服务 目录服务是一种按照树状...

    LDAP原理配置指南

    总结,LDAP作为一个重要的身份验证和信息管理工具,其原理和配置对于IT管理员来说至关重要。理解并掌握LDAP的基本概念、特性和操作,能帮助企业更有效地管理和共享内部资源,同时提高系统的安全性和效率。通过阅读...

    ldap-master.zip

    6. **文档**:可能包括关于LDAP概念、命令行工具和API使用的详细文档。 学习和理解这些内容,你可以: - **了解LDAP架构**:包括目录树结构、DN(Distinguished Name)和RDN(Relative Distinguished Name)的概念...

    spring-ldap demo

    通过阅读此文档,你可以深入理解 Spring LDAP 的工作原理,学习如何配置 LDAP 连接,编写 LDAP 查询,以及处理 LDAP 操作的异常。 3. `TestExt1.rar`:这是一个压缩子文件,可能包含了一个演示如何集成 Spring LDAP...

    LDAP技术文档

    - **Schema概念**:AD使用Schema来定义对象结构和属性,每个Schema在目录树中都是唯一的。 - **API支持**:AD提供了专用的API(如ADSI)来访问和管理目录服务。 **局限性** - **Windows专有**:AD主要是针对...

    LDAP中文学习手册

    3. **LDAP协议**:学习LDAP协议的工作原理,如搜索、添加、删除、修改和比较操作,以及如何通过LDAP协议进行通信。 4. **LDAP目录服务器**:介绍一些流行的LDAP服务器软件,如OpenLDAP、Microsoft Active Directory...

    c操作ldap例子c操作ldap例

    在深入了解示例代码之前,我们先简要介绍一些LDAP的基础概念: 1. **DN (Distinguished Name)**:标识目录条目的唯一名称,由一系列属性组成。 2. **RDN (Relative Distinguished Name)**:DN中的最后一个组成部分...

    和LDAP认证相关的RFC文档

    通过阅读这些RFC文档,IT专业人员可以深入理解LDAP的工作原理,如何设置和配置LDAP服务器,以及如何开发与LDAP兼容的应用程序。对于系统管理员和开发者来说,这些都是不可或缺的资源,尤其在设计和实现大型企业级的...

    ldap使用示例spring mvc

    在IT行业中,LDAP(Lightweight Directory Access ...总的来说,Spring MVC和LDAP的结合可以为Web应用程序提供强大而灵活的身份验证和授权机制,但同时也需要对LDAP和Spring的原理有深入理解,才能有效地利用这一组合。

    LDAP 中文资料介绍

    1. **LDAP协议基础**:首先,你需要了解LDAP的基本概念,包括其架构、目录服务的工作原理以及如何通过 LDAP 协议进行数据存储和检索。LDAP 使用树形结构来组织信息,每个条目(Entry)都有一个唯一的标识符(DN,...

    Understanding and Deploying LDAP Directory Services

    3. **LDAP协议工作原理**:详细阐述了LDAP的通信过程,包括连接建立、搜索、添加、删除、修改和比较操作,以及SSL/TLS加密在确保数据安全方面的作用。 4. **安装与配置LDAP服务器**:指导读者如何在不同的操作系统...

    LDAP详解,初学习者可以看看

    对于初学者,理解这些基础知识是非常重要的,尽管资料可能较旧,但LDAP的核心原理和基本操作变化不大,依然具有参考价值。通过深入学习,可以掌握如何在各种环境中有效地利用LDAP来提升组织的管理效率和安全性。

    修改ldap密码源代码

    这个压缩包内有两个文件:change_ldap_pwd.doc可能是文档形式的说明,详细解释了代码的工作原理和使用方法;而www.pudn.com.txt可能是从网站pudn.com下载资料的来源记录,pudn.com是一个分享编程资源的平台。 接...

    LDAP入門LDAP入門LDAP入門

    通过本文档的学习,您应该对LDAP有了基本的理解,包括它的概念、工作原理、安装配置方法以及如何在实际场景中应用。随着数字化转型的不断深入,LDAP作为一种强大的身份管理和访问控制系统,在企业级应用中的地位...

    ibm ldap 文档

    1. **LDAP基础概念**:介绍LDAP的基本原理和架构,包括目录树结构、DN(Distinguished Name)和RDN(Relative Distinguished Name),以及如何通过过滤器查询目录信息。 2. **IBM LDAP服务器安装与配置**:详细阐述...

    LDAP基础知识教程

    ### LDAP基础知识教程知识点详解 #### 一、信息模型 **1.1 LDIF** - **概念**: LDIF(LDAP Data Interchange...通过本文的详细介绍,读者可以更好地理解LDAP的工作原理,并能够在实际工作中运用这些知识来解决问题。

    LDAP技术,LDAP学习大全

    ### LDAP技术总结 #### 第一章 LDAP有关技术...以上总结了关于LDAP技术的基本概念、原理、工具、访问技术和实际应用等方面的知识点。通过这些内容的学习,读者可以更深入地理解LDAP技术,并能够将其应用于实际工作中。

    Ldap学习手册pdf版

    通过深入理解LDAP的基本概念、工作原理及其应用场景,可以帮助我们更好地利用这项技术来提高系统的安全性和管理效率。此外,了解如何在具体的技术栈(如Java)中集成LDAP也是非常有用的实践技能。

    Practical Spring LDAP英文原版

    1. **Chapter 1: Introduction to LDAP** - 这一章深入浅出地介绍了LDAP的基本原理,包括目录服务的概念、架构以及LDAP协议的主要特性。 2. **Chapter 2: Java Support for LDAP** - 阐述了Java对LDAP的支持,讲解...

Global site tag (gtag.js) - Google Analytics