【精品】使用LDAP来共享地址簿New教材
- 格式:docx
- 大小:17.69 KB
- 文档页数:2
LDAP协议协议名称:LDAP协议一、引言LDAP(轻量级目录访问协议)是一种用于访问分布式目录服务的协议。
它通过在网络上的客户端和服务器之间建立连接,实现对目录中的数据进行查询、添加、修改和删除等操作。
本协议旨在规范LDAP协议的使用方式,确保数据的安全性、一致性和可靠性。
二、范围本协议适用于所有使用LDAP协议进行目录服务的组织和个人。
三、术语定义1. LDAP(Lightweight Directory Access Protocol):轻量级目录访问协议,用于访问分布式目录服务。
2. 客户端:使用LDAP协议与服务器进行通信的应用程序或设备。
3. 服务器:提供LDAP服务的设备或软件。
4. 目录服务:存储和管理组织和个人信息的数据库系统。
四、协议规定1. 连接建立1.1 客户端通过指定服务器的IP地址和端口号建立与服务器的TCP连接。
1.2 客户端发送LDAP请求消息到服务器,并等待服务器的响应。
1.3 服务器接收到请求后,进行身份验证和权限检查。
1.4 服务器返回响应消息给客户端,建立连接成功。
2. 身份验证和权限控制2.1 客户端在请求消息中提供用户名和密码进行身份验证。
2.2 服务器根据提供的凭证进行身份验证,并检查客户端的权限。
2.3 服务器根据权限控制规则判断客户端是否具有执行请求操作的权限。
2.4 若身份验证或权限检查失败,服务器返回相应的错误消息给客户端。
3. 数据查询3.1 客户端发送查询请求消息给服务器,包含查询条件和返回结果的属性列表。
3.2 服务器根据查询条件在目录服务中进行匹配,返回满足条件的数据给客户端。
3.3 客户端接收到数据后进行处理,如展示、存储或进一步处理。
4. 数据添加、修改和删除4.1 客户端发送添加、修改或删除请求消息给服务器,包含要操作的数据和操作类型。
4.2 服务器根据请求消息进行相应的操作,如添加新数据、修改已有数据或删除数据。
4.3 服务器返回操作结果给客户端,包括成功或失败的信息。
LDAP访问LDAP(Lightweight Directory Access Protocol)是一种用于访问分布式目录服务的协议。
它提供了一种标准化的方式用于读取、修改和搜索目录中的条目。
本文将介绍LDAP访问的基本概念、步骤以及实际应用场景。
一、LDAP访问的基本概念LDAP是一种客户端-服务器协议,它使用TCP/IP协议栈进行通信。
LDAP服务器存储着组织或者机构的目录信息,而客户端可以通过LDAP协议对目录进行各种操作。
LDAP目录是由条目(entry)组成的,每个条目包含一组属性(attribute)和对应的值。
属性-值对被称为属性值(attribute value)。
每个条目拥有一个唯一的标识符(Distinguished Name,DN),用于区分不同的条目。
二、LDAP访问的基本步骤1. 连接LDAP服务器:客户端与LDAP服务器进行连接,一般使用LDAP服务器的IP地址和端口号进行连接。
成功建立连接后,客户端与服务器之间可以进行数据交互。
2. 鉴权认证:在连接建立后,客户端需要提供合法的用户名和密码进行鉴权认证,以确保客户端具备足够的权限来访问目录。
3. 搜索目录:客户端可以根据特定的搜索条件,向LDAP服务器发送搜索请求。
搜索请求中包含了搜索的基准DN(Distinguished Name)和搜索过滤条件。
LDAP服务器会根据这些条件进行搜索,并返回符合条件的条目列表。
4. 读取和修改目录:客户端可以通过读取和修改操作来获取或者更新目录中的信息。
读取操作可以获取指定条目的属性和属性值,而修改操作可以对指定条目进行添加、更新、删除等操作。
5. 断开连接:当客户端不再需要与LDAP服务器通信时,可以发送关闭连接的请求,成功断开与服务器之间的连接。
三、LDAP访问的实际应用场景1. 用户认证与授权:LDAP常用于通过用户名和密码来进行用户认证和授权管理。
企业通常会使用LDAP服务器来存储用户信息,包括用户名、密码以及其他属性。
内部网络安全共享方案方案拓扑图:实现的功能:1. 使用主从LDAP服务器架构,可保障LDAP数据库的安全,起到备份的作用2. 简化了管理的繁琐性,管理员只需要登陆到主LDAP服务器,通过图形化界面新建删除用户即可实现权限的控制,既安全又方便。
3. 如果从LDAP服务器故障,可以很方便的将smb移植到主LDAP服务器上。
实验步骤:一:主LDAP服务器配置(IP:1. yum -y install openldap*2. cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIGchown -R ldap:ldap /var/lib/ldap3. cp /usr/share/doc/samba- /etc/openldap/schema/4. 编辑slapd.conf配置文件,更改如下图:添加samba.schema,使其支持samba客户端验证更改域名和设置密码。
5. 创建根域/usr/share/openldap/migrationvi migrate_commond.ph更改如图:./migrate_base.pl > base.ldifldapadd -x -D "cn=Manager,dc=babytree,dc=com" -W -f base.ldif6 新建任意用户:user1将用户user1转换成ldap用户cd /usr/share/openldap/migrationgrep user1 /etc/passwd > user1.in./migrate_passwd.pl user1.in > user1.ldifldapadd -x -D "cn=Manager,dc=babytree,dc=com" -W -f user1.ldif二:从LDAP服务器&SAMBA服务器配置(IP:配置SAMBA服务器:1.备份smb.conf,新编辑smb.conf,如图所示:2.运行setup,如图:勾选如上图所示,下一步,如图:完成设置。
Web认证使用LDAP无线局域网控制器(WLCs)配置示例文件编号:108008目录简介先决条件需求使用的组件公约Web认证过程配置网络图配置配置LDAP服务器配置LDAP服务器WLC的配置Web认证的WLAN验证疑难解答相关信息简介本文档介绍了如何设置Web认证的无线局域网控制器(WLC)。
这文件还介绍了如何配置作为一种轻型目录访问协议(LDAP)服务器后端数据库的Web身份验证,以检索用户凭据,验证用户。
先决条件需求您尝试这种配置之前,确保你满足这些要求:•知识和思科轻型接入点的配置(LAPS)WLCs•知识轻量级接入点协议(LWAPP)•如何设置和配置LDAP,Active Directory和域控制器的知识使用的组件在这个文件中的信息是基于这些软件和硬件版本:•思科4400 WLC的运行固件版本5.1•思科1232系列的LAP•思科802.11a/b/g无线客户端适配器,运行固件版本4.2•微软Windows2003服务器执行LDAP服务器中的作用在这个文件中的信息是从在一个特定的实验室环境的设备。
所有的在这个文件中使用的设备,开始与清零(默认)配置。
如果您的网络生活,确保您了解所有命令的潜在影响。
公约关于文件惯例的更多信息,请参阅Cisco技术提示惯例。
Web认证过程Web身份验证是第3层安全功能,使控制器禁止IP流量(除DHCP相关的数据包从一个特定的客户端,直到该客户端)已经正确地提供了一个有效的用户名和密码。
当您使用网络身份验证来验证客户端,你必须定义一个用户名和密码为每一个客户。
然后,当客户端尝试加入无线局域网,用户必须输入用户名和密码登录页面提示时。
当启用了Web认证(在第3层安全),用户有时会收到一个网页浏览器安全警报的第一次,他们试图访问一个网址用户点击后是继续执行,或如果theclient浏览器不显示安全警报,网络认证系统的客户端重定向到登录页面默认登录页包含一个Cisco徽标和思科特定的文字。
为通讯簿配置LDAP轻型目录访问协议(LDAP) 又称为Internet 目录服务,用于查找不在本地Outlook 通讯簿或公司内部目录(例如全球通讯簿)中的电子邮件地址。
LDAP可查询其他服务器上的目录,以查找随后可在Outlook 中查看的姓名及其他信息。
LDAP 服务要求具有到LDAP 服务器的网络连接。
Microsoft Exchange 支持LDAP,您也可以在Internet、您所在组织的Intranet 或托管LDAP 服务器的其他公司中查找LDAP 服务器。
若要为通讯簿配置LDAP,需要知道LDAP 服务器的名称和端口号。
有关配置LDAP 服务(例如浏览目录或定义自定义筛选器)的详细信息,请参阅配置Outlook 2007 中的LDAP 选项。
设置和配置LDAP 服务1.在“工具”菜单上,单击“帐户设置”。
2.在“通讯簿”选项卡上,单击“新建”。
3.单击“Internet 目录服务(LDAP)”选项,然后单击“下一步”。
4.在“服务器名称”框中,键入由Internet 服务提供商(ISP) 或系统管理员提供的服务器的名称。
5.如果所指定的服务器受密码保护,请选中“此服务器要求我登录”复选框,然后键入用户名和密码。
6.单击“其他设置”。
7.在“显示名称”下,键入要在“通讯簿”对话框的“通讯簿”列表中显示的LDAP 通讯簿的名称。
8.在“连接详细信息”下,键入由Internet 服务提供商或系统管理员提供的LDAP 服务器的端口号。
9.单击“搜索”选项卡,然后根据需要更改服务器设置。
搜索超时设置用于指定Outlook 为解析邮件中的姓名而搜索LDAP 目录时所用的秒数。
您还可以限制每次搜索成功时在通讯簿中返回并列出的姓名数。
10.在“搜索”选项卡上的“搜索基础”下,如果尚未填充“自定义”框,请在其中键入管理员提供的标识名称。
11.单击“确定”,单击“下一步”,然后单击“完成”。
LDAP入门如果你在计算机行业工作,那么对LDAP可能早有耳闻了。
想深入地了解LDAP吗?那么可以好好地读一下这篇文章。
这篇介绍性的文章是一系列介绍如何在企业中设计、实现和集成LDAP环境的文章的头一篇。
主要是先让你熟悉一下LDAP的基本概念,那些比较困难的细节问题将放到以后讨论。
在这篇文章中我们将要介绍:什么是LDAP?什么时候该用LDAP存储数据?LDAP目录树的结构单独的LDAP记录作为例子的一个单独的数据项LDAP复制安全和访问控制现在LDAP技术不仅发展得很快而且也是激动人心的。
在企业范围内实现LDAP可以让运行在几乎所有计算机平台上的所有的应用程序从LDAP目录中获取信息。
LDAP 目录中可以存储各种类型的数据:电子邮件地址、邮件路由信息、人力资源数据、公以简化员工在企业内部查询信息的步骤,甚至连主要的数据源都可以放在任何地方。
如果Oracle、Sybase、Informix或Microsoft SQL数据库中已经存储了类似的数据,那么LDAP和这些数据库到底有什么不同呢?是什么让它更具优势?请继续读下去吧!什么是LDAP?LDAP的英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。
它是基于X.500标准的,但是简单多了并且可以根据需要定制。
与X.500不同,LDAP 支持TCP/IP,这对访问Internet是必须的。
LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。
怎么使用LDAP这个术语呢?在日常交谈中,你可能会听到有些人这么说:“我们要把那些东西存在LDAP中吗?”,或者“从LDAP数据库中取出那些数据!”,又或者“我们怎么把LDAP和关系型数据库集成在一起?”。
严格地说,LDAP根本不是数据库而是用来访问存储在信息目录(也就是LDAP目录)中的信息的协议。
更为确切和正式的说法应该是象这样的:“通过使用LDAP,可以在信息目录的正确位置读取(或存储)数据”。
搜索目录本节讨论Senior Level Linux Professional(LPIC-3)考试301 的304.1 主题的内容。
这个主题的权值为2。
在本节中,学习:∙使用OpenLDAP 搜索工具的基本选项∙使用OpenLDAP 搜索工具的高级选项∙优化LDAP 的搜索查询∙使用搜索过滤器和它们的语法只有当需要某个条目时能够找到它,树中的数据才有用。
LDAP 提供了强大的功能集,允许您从树中提取信息。
搜索的基础知识要对树进行搜索,您需要四种信息:1.拥有树的服务器上的凭证2.搜索所基于的树上的区分名(Distinguished Nam,DN)3.搜索范围4.搜索过滤器您已经在本系列以前的教程中了解了服务器凭证。
凭证可以没有任何内容,这将导致匿名绑定;凭证也可以是条目的DN 和密码。
这意味着服务器认为这些凭证是有效的,并允许您搜索!搜索所基于的DN 称为基DN。
所有搜索结果将会是基DN 或者它的子DN。
如果您的基DN 是ou=people,dc=ertw,dc=com,那么您会找到cn=Sean Walberg,ou=people,dc=ertw,dc=com,但是不会找到cn=Users,ou=Groups,dc=ertw,dc=com,因为它位于您试图搜索的基DN 之外。
搜索范围决定了基DN 下的哪个条目将被搜索到。
由于性能方面的原因,或者由于只有基DN 的某些子DN 包含所需的信息,您可能想要限定搜索范围。
默认的搜索范围为下级(subordinate)(通常缩写为sub),包括基DN 及其所有子DN。
您可以使用基范围只搜索基DN。
比如,当您想测试某个条目是否在在时就可以使用这种方式。
如果搜索范围为一级,则只搜索基DN 的直接子DN,并不搜索基DN 本身和任何孙子层的DN。
图1 展示了一个树和可能包含在3 个不同搜索范围中的条目。
图 1. 3 个不同的搜索范围搜索功能中最强大(和最复杂)的部分是搜索过滤器。
LDAP操作的两种⽅案最近由于项⽬需要研究了⼀下LDAP相关知识,感觉对没接触过的⼈来说还是有点坑的,所以记录下来给⼤家分享。
由于是第⼀次接触,就在⽹上搜了⼀些相关的⽂章,照着⽰例代码测试,却怎么也连不上LDAP服务器,最后折腾的能连上服务器了,⼜不能检索⽤户。
折腾过程中遇到的主要错误就是:There is no such object on the server.The username or password is incorrect.The server could not be contacted.在经历了N⼩时的煎熬之后,终于找到了第⼀种解决⽅案,其实就是参考⽹上的⽰例代码,但是⽰例代码的AuthenticationTypes是None,测试连接的时候总是不能正常连接,LDAP地址只能写host,后⾯不能跟DN,否则就连不上服务器,⽽且这种⽅法连接上服务器也不能检索⽤户。
后来改为AuthenticationTypes.FastBind之后才能正常⼯作了。
1//----------------------------------------------------------------------------------------------2// DirectoryEntry ⽅案,需要引⽤ System.DirectoryServices3//----------------------------------------------------------------------------------------------4var ldapPath = "LDAP://" + host + "/" + baseDN; // LDAP必须要⼤写,好像是.NET的特⾊5 DirectoryEntry de = new DirectoryEntry(ldapPath, adminName, adminPass, AuthenticationTypes.FastBind);6 DirectorySearcher searcher = new DirectorySearcher(de);7 searcher.Filter = "(uid=" + testUser + ")";8 searcher.SearchScope = SearchScope.Subtree;9 searcher.PropertiesToLoad.Add("uid");10 searcher.PropertiesToLoad.Add("cn");1112var result = searcher.FindOne();1314// 输出⼏个查询的属性值15foreach (string n in result.Properties.PropertyNames)16 {17 Console.WriteLine("{0}: {1}", n, result.Properties[n][0].ToString());18 }1920try21 {22int pos = stIndexOf('/');23string uid = result.Path.Remove(0, pos + 1);2425// ⼆次连接,使⽤需要认证的⽤户密码尝试连接26 DirectoryEntry deUser = new DirectoryEntry(ldapPath, uid, testPass, AuthenticationTypes.FastBind);27var connected = deUser.NativeObject;2829 Console.WriteLine("### 认证成功!");30 }31catch32 {33 Console.WriteLine("认证失败~~~");34 }另外⼀种⽅案是我同事找到的,和我上⾯⼀种⽅案⼏乎在同⼀时间找到,⽐较坑,是使⽤.NET官⽅类库中的LdapConnection,我⼀直认为LDAP这么常见的东西⼀定有官⽅的解决⽅案,奈何搜遍了国内外的中⽂、E⽂⽹站,“LDAP C#”、“LDAP .NET”关键字都搜了,就是没有任何⼈提到关于这个类的⽚⾔只字,真⽆语!难道这玩意就这么冷门吗?难道⼤家都在⽤DirectoryEntry吗?不可思议。
一、LDAP介绍LDAP是轻量级目录访问协议的简称(Lightweight Directory Access Protocol).用于访问目录服务。
它是X.500目录访问协议的移植,但是简化了实现方法。
二、目录服务与关系数据库之间的区别a)目录查询操作比关系数据库有更高的效率,但是更新效率比关系数据库低b)目录不支持关系数据库那样的复杂查询,比如两个表的连接。
c)目录不支持多操作的事物完整性,没有方式确认一些操作是全部成功还是全部失败d)目录能够能好和更灵活的支持子查询和匹配查询e)目录协议更适合应用于广域网,比如因特网或者大型公司的网络f)目录的管理,配置,和调试比关系型数据库更简单g)在使用关系数据库之前,必须首先定义表结构(模式)才可以进行操作。
而目录中所使用的模式是由LDAP定义好的一系列类组成的。
对于目录中的每条记录中必须属于其中的一个类或者多个类。
这些类定义了该记录中可以存储的信息。
h)目录以对象的形式存储数据。
信息被组织成树型结构。
i)目录服务支持分布式存储结构,容易实现数据的扩展,能满足大容量存储的要求。
三、LDAP的优点1:可以存储在其它条件下很难存储的管理信息2:数据安全可靠,访问控制粒度细腻。
3:LDAP是一个标准的,开放的协议,具有平台无关性。
4:数据分布广,规模可灵活扩充。
5:LDAP目录服务器可以使任何一种开放源代码或商用的LDAP目录服务器。
四、LDAP模型。
是LDAP的一个组成部分,用于指导客户如何使用目录服务LDAP 定义了四个模型,包括信息模型,命名模型,功能模型,安全模型。
1.LDAP 信息模型(LDAP information model)LDAP信息模型用于描述LDAP中信息的表达方式。
LDAP信息模型包含三部分EntriesAttributesValuesEntry:Directry中最基本的信息单元,Entry中所包含的信息描述了现实世界中的一个真实的对象,在目录系统中它可以理解为,目录树中的一个节点。
【关键字】精品
IceWarp 集成LDAP服务
同步管理用户实现客户端地址簿共享查找
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。
它是基于X.500标准的,但是更简单并且可以根据需要定制。
与X.500不同,LDAP 支持TCP/IP,这对访问Internet是必须的。
目前,很多公司都把LDAP和自己的产品、技术结合在一起,增加LDAP在各个领域中的有效性,这一切都来源于LDAP是一个开放的协议,很容易和其他标准协议共存。
IceWarp Server 作为国际老牌的邮件服务器厂商,充分表现在系统的开放性,自身集成LDAP服务,亦可使用第三方LDAP 服务器,同步用户帐户实现用户帐户管理,用来做地址簿的共享,使得用户在MS Outlook、Outlook Express 或者其他邮件客户端上通过LDAP服务器来查找同事的邮件地址。
使用LDAP做身份认证
为什么需要使用LDAP数据库?用传统的关系型数据库不可以吗?
LDAP服务器就是起到了一个认证Server的作用,从技术本身而言,这个认证Server具体使用的是何种数据库并不重要,如果使用一个关系型数据库也可以达到统一身份认证的目的,但LDAP 自身的优势使得很多公司最终选择它。
◆LDAP是一个开放的标准协议,不同于SQL数据库,LDAP的客户端是跨平台的,并且对几乎所有的程序语言都有标准的API接口。
即使是改变了LDAP数据库产品的提供厂商,开发人员也不用担心需要修改程序才能适应新的数据库产品。
这个优势是使用SQL语言进行查询的关系型数据库难以达到的。
◆由于LDAP数据库的数据保存是树结构,整棵树的任何一个分支都可以单独放在一个服务器中进行分布式管理,不仅有利于做服务器的负载均衡,还方便了跨地域的服务器部署。
这个优势在查询负载大或企业在不同地域都设有分公司的时候体现尤为明显。
◆LDAP支持强认证方式,可以达到很高的安全级别。
在国际化方面,LDAP使用了UTF-8编码来保存各种语言的字符。
◆更灵活添加数据类型,LDAP是根据schema的内容定义各种属性之间的从属关系及匹配模式的。
例如在关系型数据库中如果要为用户增加一个属性,就要在用户表中增加一个字段,在拥有庞大数量用户的情况下是十分困难的,需要改变表结构。
但LDAP只需要在schema 中加入新的属性,不会由于用户的属性增多而影响查询性能。
◆LDAP数据库是对读操作进行优化的一种数据库,在读写比例大于7比1的情况下,LDAP会体现出极高的性能。
这个特性正适合了身份认证的需要。
IceWarp 中LDAP 服务实现设置步骤:
一、配置LDAP 服务器:
1、远程管理控制台--- 服务–LDAP 服务--- LDAP属性
2、LDAP 服务属性--- slapd.conf 设置文件位置。
3、编辑slapd.conf 文件,配置LDAP 服务器设置。
二、IceWarp 服务器用户同步LDAP 服务
1、在IceWarp 服务器上设置LDAP 同步
管理控制台中,“域& 帐户”-“全局设定”-“高级选项”下,激活LDAP用户同步,LDAP主机填您服务器主机名或者IP地址,dc=root代表服务器树根,用户DN中服务器管理员和密码,
LDAP默认的端口是389,SSL端口是636,可以在“服务”修改端口。
上面填好后,点击“立即同步所有用户到LDAP”,将IceWarp邮箱管理系统与LDAP 服务器用户进行同步
MS Outlook / Outlook Express等客户端就可以通过LDAP服务器来查找同事的邮件地址。
2、在Outlook Express中设置LDAP
打开Outlook Express以后选“工具”->“通讯簿”,然后在“通讯簿”的页面里选择“工具”->“帐户”,点“添加”,“Internet目录(LDAP)服务器”填LDAP服务器的主机名或者IP地址,例如,是否用这个目录服务检查地址?选“是”,之后点“完成”,最后在“目录服务”栏中选中刚才设置的项目击“属性”,在“搜索库”中填入“dc=root”
写邮件选择收件人的时候选择“查找”,输入相应的用户名就可以查找了,
搜索范围中选择上面添加的LDAP服务器,输入同事的姓名,点击“开始查找”,即可搜索到同事的邮件地址,然后点击“收件人”,该同事邮件地址即加入到收件人栏中,也可以搜索出公司所有同事的邮件地址,在上面的“查找”中,选择“高级”,定义条件是“电子邮件”“包含”“@”,然后点“添加”,再“开始查找”,会显示出LDAP服务器上所有人的通讯地址,可选择为收件人,也可将常通信的同事或者全部同事加入到自己本地的通讯簿,以后就直接在自己通讯簿里查找了。
在MS Outlook中设置LDAP
MS Outlook中设置LDAP跟前面的outlook express基本类似,下面简单说下步骤(以Outlook 2003为例),
开始也是建立LDAP的帐户,选“工具”->“电子邮件帐户”
选择“添加新目录或通讯簿”,选“Internet 目录服务(LDAP)”,
“Internet目录(LDAP)服务器”填LDAP服务器的主机名或者IP地址,例如,点“其他设置”,选“搜索”,在“搜索基础”处填“dc=root”
最后点“下一步”->“完成”,注意完成后要重新启动Outlook设置才会生效。
写邮件的时候点击收件人,显示名称来源选择上面添加的LDAP服务器,“高级”中选择“查找”,
输入相应的用户名查找邮件地址,
上图点击“确定”后,显示出该用户名的邮件地址,然后点击收件人,确定,该用户加入到您写邮件的收件人中,
此文档是由网络收集并进行重新排版整理.word可编辑版本!。