如何组建和 *** 作LDAP数据库

如何组建和 *** 作LDAP数据库,第1张

LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大。

LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。要特别注意的是,LDAP通常作为一个hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。正因为这样,就不能用SQL语句了。

简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。

LDAP是轻量目录访问协议(LightweightDirectory Access Protocol)的缩写,其实是一话号码簿,类似于我们所使用诸如NIS(NetworkInformation Service)、DNS (Domain Name Service)等网络目录,也类似于你在花园中所看到的树木。

LDAP是一种特殊的数据库。但是LDAP和一般的数据库不同,明白这一点是很重要的。 LDAP对查询进行了优化,与写性能相比LDAP的读性能要优秀很多。

1.1 LDAP的存储规则

区分名(DN,DistinguishedName)

和自然界中的树不同,文件系统/LDAP/电话号码簿目录的每一片枝叶都至少有一个独一无二的属性,这一属性可以帮助我们来区别这些枝叶。

在文件系统中, 这些独一无二的属性就是带有完整路径的文件名。比如/etc/passwd,该文件名在该路径下是独一无二的。当然我们可以有/usr/passwd, /opt/passwd,但是根据它们的完整路径,它们仍然是唯一的。

在LDAP中,一个条目的区分名称叫做“dn”或者叫做区分名。在一个目录中这个名称总是唯一的。比如,我的dn是"uid=aghaffar, ou=People, o=developer.ch"。不可能有相同的dn,但是我们可以有诸如"uid=aghaffar,ou=Administrators, o=developer.ch"的dn。这同上面文件系统中/etc/passwd 和 /usr/passwd的例子很类似。

我们有独一无二的属性,在"ou=Administrators,o=developer.ch" 中uid和在"ou=People,o=developer.ch"中的uid。这并不矛盾。

CN=Common Name 为用户名或服务器名,最长可以到80个字符,可以为中文

OU=Organization Unit为组织单元,最多可以有四级,每级最长32个字符,可以为中文

O=Organization 为组织名,可以3—64个字符长

C=Country为国家名,可选,为2个字符长

LDAP目录以一系列“属性对”的形式来存储记录项,每一个记录项包括属性类型和属性值(这与关系型数据库用行和列来存取数据有根本的不同)。

mail = [email protected]

othermailbox = [email protected]

givenname = givenname

sn = test sn

属性可添加,以下一个属性必须赋值:

objectclass=person (值为:person 或 server 或organization 或 其他自定义的值)

2 PHP(PHP培训php教程 )如何 *** 作LDAP

2.1 Php如何与LDAP连接和关闭

$ds=ldap_connect("ServerName")

ServerName是LDAP的服务器名,

例:

$ds=ldap_connect(“10.31.172.30:1000”)

返回值是:true 或false

关闭连接

ldap_close($ds)

2.2 在php中如何搜索用户信息

$ds=ldap_connect("10.31.172.30:1000")

//首先连接上服务器

$justthese =array("cn","userpassword",”location”)

//搜索函数中的一个参数,要求返回哪些信息,

//以上传回cn,userpassword,location,这些都要求小写

$sr=ldap_search($ds,"o=jite","cn=dom*",$justthese)

//第一个参数开启LDAP的代号

一、设置企业安全管理制度体系的层级架构的背景

随着信息技术的发展和快速通信的需求,现代企业的运营越来越依赖于企业IT基础架构的建设水平,特别是一些分支机构分布全国或者跨国范围的大型企业。与此同时,如何保证这些企业的IT基础架构的安全性和稳定性成为一项迫切的需求,特别是在美国的萨班斯法案生效后,给企业在如何保证数据的准确性和安全性方面提出了更高的要求。

二、实现体系所需的网络安全知识

1、网络安全基础

随着工nternet的发展,信息安全也迎来了第二次变革,分布式系统、终端用户与计算机之间以及计算机与计算机之间传送数据的网络和通信设施的广泛应用,使得在信息传输时,需要有网络安全措施来保护数据传输。这就是“网络安全”的产生。

网络安全包含两个方面的内容:

a)所有与网络相关,特别是互联网相关的安全问题,包括各种系统的安全漏洞、协议的弱点和各式各样的攻击行为

b)解决这些问题的技术或手段,包括密码技术、防火墙、虚拟专用网技术、入侵检测技术等应用技术,也包括相关的协议规范和管理策略。

2)网络与信息安全的目标

人们对信息的使用主要是通过计算机网络来实现的,在计算机和网络上信息的处理是数据的形式进行,在这种情况下,信息就是数据,因而从这个角度来说,网络与信息安全可以分为数据安全和系统安全。即信息安全可以从两个层次来看:

从消息的层次来看,包括信息的:

a)完整性(Integrity):即保证消息的来源、去向、内容真实无误

b)保密性(Coflfidefltiality):即保证消息不会被非法泄露扩散

e)不可否认性(Non一repudiation)一也称为不可抵赖性:即保证消息的发送和接受者无法否认自己所做过的 *** 作行为。

4)网络安全技术体系

一般的,可以从两个方面来设计网络安全的体系结构:

a)网络安全技术服务的不同对象

b)网络安全技术提供安全功能的特点

网络安全的服务对象有系统(包括一般主机和服务器)、局域网和网络的通信。根据服务对象的不同,分别有不同特性的网络安全技术。例如对于保护系统安全的技术有:数据备份、数据恢复和反病毒等技术对于局域网安全的技术有:

防火墙、网络监控等技术对于通信安全的技术则有:PKI、VPN等技术提供服务。

从网络安全技术自身特点来分析,网络安全技术可以分为:基础的网络支撑技术、主流的网络安全技术、专业的网络安全技术和具体的网络安全应用系统等。

密码技术和访问控制技术属于基础的网络安全支撑技术,提供所有其它网络安全技术所需要的基本安全服务防火墙、VPN和PKI技术则属于目前流行的主流网络安全技术,己有较多的成熟产品面向用户。网络标准和法规则可以看成属于管理层面的网络安全技术。

从网络层次来看,包括:

a)可用性:即保证网络和信息系统随时可用,运行过程中不出现故障,若遇意外打击能够尽量减少并尽早恢复正常

b)可控性(Controllability):是对网络信息的传播及内容具有控制能力的特性。

3)网络的安全威胁

网络的安全威胁来自于以下几个方面:

a)网络协议的弱点

TCP/IP协议是如今最流行的网络协议,它的设计本身并没有较多地考虑安全方面的需求,因而TCP/IP协议存在一些弱点,这些弱点带来许多直接的安全威胁。

b)网络 *** 作系统的漏洞

*** 作系统是网络协议和服务得以实现的最终载体之一,它不仅负责网络硬件设备的接口封装,同时还提供网络通信所需要的各种协议和服务的程序实现。一般情况, *** 作系统规模都很大,其中的网络协议实现尤其复杂,这点己经决定了 *** 作系统必然存在各种实现过程所带来的缺陷和漏洞。网络 *** 作系统的漏洞成为网络所面临的重要的安全威胁之一。

c)应用系统设计的漏洞

与 *** 作系统情况类似,应用程序的设计过程中也会带来很多由于人的局限性所导致的缺陷或漏洞。软件和硬件设计都存在这种问题,而其中软件的问题为我们所直接面对。

由于硬件设计方面的缺陷,特别是芯片的技术缺陷,使得硬件的后门与漏洞是我们网络所面临的最为深刻的威胁之一。

d)恶意攻击

恶意攻击是人们最易理解,而又最难防范的网络安全威胁。恶意的黑客攻击、网络病毒等都属于这类。

e)来自合法用户的攻击

来自合法用户的攻击是最容易被管理者忽视的安全威胁之一,事实上,80%的网络安全事件与内部人员的参与相关。网络管理的漏洞往往是导致这种威胁的直接原因。

2、PKI技术原理

pKI(PublieKeyInfrastrueture),即公开密钥体系。它是利用公钥理论和技术建立的提供信息安全服务的基础设施,是国际公认的现代网络安全认证机制。它利用现代密码学中的公钥密码技术在开放的网络环境中提供数据加密以及数字签名服务的统一的技术框架。

公钥是目前应用最广泛的一种加密体制,在此体系中,加密密钥与解密密钥各不相同,发送信息的人利用接收者的公钥发送加密信息,接收者再利用自己专有的私钥进行解密。这种方式既保证了信息的机密性,又能保证信息具有不可抵赖性。

PKI是一种遵循标准并利用公钥技术,为开放性网络应用的开展提供一套安全基础平台的技术与规范,它能够透明地提供基于公开密钥的加密和数字签名等安全服务。利用PKI可以方便地建立和维护一个可信的网络计算环境,从而使得人们在这个无法直接相互面对的环境中能够确认彼此的身份和所交换的信息。为实现以上目的,典型实用的PK工系统应由以下部分组成:PKI客户端、注册机构(RA)、认证机构(以)和证书库。

1)PKI客户端

PK工客户端的主要功能是使各种网络应用能够以透明、安全、一致、可信的方式与PKI交互,从而使用户能够方便地使用加密、数字签名等安全服务。

2)注册机构(RA)

RA则是用户与认证中心的接口,其主要功能是核实证书申请者的身份,它所获证书的申请者身份的准确性是以颁发证书的基础。

3)认证机构(以)

作为PKI核心的认证中心是证书颁发机构,由以签发的证书是网上用户的电子身份标识。

4)证书库

证书库用来存放经以签发的证书和证书注销列表(CRL),为用户和网络应用提供证书及验证证书状态。

3、kerberos技术原理

KerberoS身份认证协议提供了一种客户和服务器之间,或者是服务器彼此之间,在打开网络连接之前进行相互身份认证的机制。该协议假设客户和服务器之间最初的事务处理是发生在一个开放的网络当中,在这个网络中,绝大多数的计算机不是完全可靠的,而且包在线路上的传输可以被监听,并且可以被任意修改。换句话说,这种假设的环境和今天的Internet非常相似,一个攻击者可以轻松地假装成一个客户或者服务器,可以轻易地窃听或者篡改合法的客户同服务器之间的通信。

1)基本概念

KerberoS协议完全依赖于一个涉及共享秘密的身份认证技术。基本的概念是:如果一个秘密只有两个人知道,那么两个人中的任何一个都可以通过证实另一个人也知道该秘密,从而确认他的身份。

我们可以假设这么一个例子,爱丽丝经常发消息给鲍勃,而且鲍勃需要先确认消息的确来自爱丽丝,然后才能对消息的内容进行处理。他们决定通过选择一个口令来解决他们的这个问题,而且他们约定不把这个秘密告诉别的任何人。如果爱丽丝的消息能够以某种方式证明发送者确实知道这个口令,那么鲍勃就能够确认发送消息的一定是爱丽丝。

爱丽丝和鲍勃需要解决的问题就剩下一个,那就是爱丽丝如何才`能显示她知道这个口令呢?她可以简单地将这个口令包含在她消息中的某处,也许在最后的签名部分一八ice,Our$ecret。这种方法简单而且高效,而且如果爱丽丝和鲍勃能够确认没有别的人也在读他们的信的话,这种方法是完全有效的。然而不幸的是,这种条件无法达到。他们的消息是在一个卡萝尔这样的人也在使用的网络上传输,卡萝尔有一个网络分析器,而且她有这样一个爱好,她喜欢扫描网络通信量,并且希望能有一天认出一个口令。因此,爱丽丝光靠说出口令已经不可能证明他知道这个秘密了。为了保证口令的保密性,她必须在不暴露口令的情况下显示她知道口令。

KerberoS协议使用秘密密钥加密来解决这个问题。通信的双方不是共享口令,而是共享一个加密密钥,而且双方使用有关这个密钥的知识来确认对方的身份。要让这个技术起作用,这个共享的密钥必须是对称的—单独一个密钥必须既可以加密也可以解密。一方通过加密一段信息来显示对该密钥的了解,而另一方通过解密这段信息来显示对该密钥的了解。

2)密钥分配

KerberoS协议的名称就暗示了它解决密钥分配问题的方法。KerberoS(或者CerberuS)是古典希腊神话当中的一个动物,它是一种凶猛的,有三个头的狗,守卫在冥府的入口。像守卫的Kerberos一样,KerberoS协议有三个头:一个客户,一个服务器,一个可信赖的第三方作在他们之间进行调解。协议当中的这个可信任的中介被称作密钥分配中心(KDC)。

KDC是运行在一个真正安全的服务器上的一个服务。它维护着一个存储所有处于它领域范围内的安全委托人的账户信息的数据库。除了关于每个安全委托人的其他信息以外,KDC还存储了一个只有安全委托人和KDC知道的加密密钥。这个密钥是用来在安全委托人和KDC之间交换信息的,被称作长期密钥。在该协议的绝大部分实现当中,这个密钥从一个用户的登录口令派生出来的。

3)会话票证(sessionTieket)

如图2一1所示,作为对客户请求同服务器通话的回答,K民将会话密钥的两个拷贝都发送给客户。会话密钥的客户拷贝是用KDC同客户共享的密钥加密的。会话密钥的服务器拷贝同关于客户的信息一起包含在一个叫做会话票证的数据结构当中。然后整个结构用KDC同服务器共享的密钥进行加密。在客户联系服务器之前,保管好这个安全地保存会话密钥服务器拷贝的票证就成为客户的责任。

KDC只是简单地提供了一个票证授权服务。它并不对它的消息进行跟踪以保证这些消息都到达了目标地址。如果KDC的消息发错了人,不会有什么危害。只有知道客户秘密密钥的人才能够对会话密钥的客户拷贝进行解密。只有知道服务器秘密密钥的人才能够读出票证里面的内容。

当客户收到KDC的回答时,它抽取出票证和会话密钥的客户拷贝,将两者都保存在一个安全的缓冲区里面(这个缓冲区位于易失性的内存里面,而不是磁盘上)。当客户想得到服务器的进入许可时,它向服务器发送一个包含了那个票证和一个鉴别码的消息(如图2一2所示),票证仍然是用服务器的秘密密钥加密了的,鉴别码是用会话密钥加密的。票证加上鉴别码就是客户提供给服务器的信任证。

当服务器收到来自某个客户的信任证时,它用自己的秘密密钥对会话票证进行解密,从中抽取出会话密钥,然后用这个会话密钥对客户的鉴别码进行解密。如果一切都通过了,那么服务器就知道客户的信任证是一个可信赖的权威机构一一KDC发放的。如果客户请求了相互身份认证的话,服务器就用它的会话密钥拷贝对来自客户鉴别码的时间标志进行加密,将结果返回给客户,作为服务器方的鉴别码。

4)票证授权证

用户的长期密钥是从一个口令派生出来的。例如,当爱丽丝登录时,她的工作站上的KerberoS客户将接收她的口令,然后通过将这个口令的文本传入一个单向杂凑函数来把口令转化为一个加密了的密钥。(Kerber0S版本5的所有实现都必须支持DES一CBC一MDS。除此之外,也可以支持别的算法)。这个结果就是爱丽丝的长期密钥。

KDC从爱丽丝在它的账户数据库中的记录当中得到爱丽丝的长期密钥的拷贝。当它收到来自爱丽丝的工作站上的KerberoS客户的请求时,KDC将在它的数据库当中查找爱丽丝,取出她的账户记录,从记录当中的一个字段中取出她的长期密钥。

这个从口令计算出密钥的一个拷贝,从数据库取出密钥的另一个拷贝的过程实际上只发生一次,就是当一个用户第二次登录到网络的时候。在接收了用户的口令,派生出用户的长期密钥之后,该工作站上的KerberoS客户就立即申请一个会话票证和会话密钥,以便在可以在登录会话中随后与KDC的交流时使用。

作为对客户请求的回答,KDC返回一个自己的会话票证。这个特殊的会话票证叫做票证授权证(TicketGrantingTicket,简称TGT)。像普通的会话票证一样,TGT包含了一个服务(在此情况下就是指KDC)用来同客户通信的会话密钥的一个拷贝。将TGT返回给客户的消息当中也包含了客户可以在同KDC的通信当中使用的会话密钥的一个拷贝。TGT是用KDC的长期密钥加密的。会话密钥的客户拷贝是用用户的长期密钥加密的。

当客户收到KDC对它最初请求的回答时,它使用它缓存的用户长期密钥的拷贝解密出会话密钥的拷贝。接着它就可以丢弃派生自用户口令的长期密钥,因为这个密钥己经不再需要了。像其他任何会话密钥一样,这个会话密钥是临时的,在TGT过期或用户注销后就无效了。因为这个原因,这个会话密钥就叫做登录会话密钥。

从客户的角度看,一个TGT不过是另一个票证罢了。在尝试连接任何服务之前,客户首先在它的信任证缓冲区中寻找一个到该服务的会话票证。如果客户找不到这样的会话票证,它就在信任证缓冲区里面寻找TGT。如果找到了一个TGT,该客户就从缓冲区里面取出相应的登录会话密钥,用这个密钥来准备鉴别码,并将这个鉴别码和TGT都发送给KDC,同时申请一个访问该服务的会话票证。换句话来说,获取访问KDC的许可同获取访问该域中任何其他服务的许可没有什么不同,也需要一个会话密钥,一个鉴别码,和一个票证(在这种情况下,这个票证就是TGT)。

从KDC的角度看,TGT使得它可以在周转时间当中挤出几纳秒来处理票证申请。KDC仅在颁发最初的TGT时查找一个客户的长期密钥一次。在同该客户的所有其他交换时,KDC可以用它自己的长期密钥解密该TGT,从中抽取出登录会话密钥,用它来验证客户的鉴别码。

4、LDAP技术原理

1)LDAP是什么

LDAP是轻量目录访问协议,英文全称是LightweightDirectoryAcceSSProtocol,一般都简称为LDAP。它基于X.500标准,却相对比较简单,并且可以根据需要定制。与X.500不同,LDAP支持TCP/工P,这对访问工nternet是必须的。简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。LDAP是一个用来发布目录信息到许多不同资源的协议。

LDAP其实是一地址簿,类似于我们所使用诸如NIS(NetworkInformationServiee)、DNS(DomainNameServiee)等网络目录。LoAP和关系数据库是两种不同层次的概念,后者是存贮方式(同一层次如网格数据库,对象数据库),前者是存贮模式和访问协议。LDAP是一个比关系数据库抽象层次更高的存贮概念,与关系数据库的查询语言SQL属同一级别。LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。

从另一个意义上LDAP是实现了指定的数据结构的存贮,它是一种特殊的数据库。LDAP对查询进行了优化,与写性能相比LDAP的读性能要优秀很多。

就象Sybase、Oraele、Informix或Mierosoft的数据库管理系统(DBMS)是用于处理查询和更新关系型数据库那样,LDAP服务器也是用来处理查询和更新LDAP目录的。换句话来说LDAP目录也是一种类型的数据库,但不是关系型数据库。要特别注意的是,LDAP通常作为一个hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。

2)LDAP的复制技术

LDAP服务器可以用”推“或”拉“的方法复制部分或全部数据,例如:可以把数据“推“到远程的办公室,以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配置。

3)LDAP存储的数据

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

a)公司员工的电话号码簿和组织结构图

b)客户的联系信息

c)计算机管理需要的信息,包括NIS映射、email假名等等

d)软件包的配置信息

e)公用证书和安全密钥

大多数的LDAP服务器都为读密集型的 *** 作进行专门的优化。因此,当从LDAP服务器中读取数据的时候会比从专门为OLTP优化的关系型数据库中读取数据快一个数量级。也是因为专门为读的性能进行优化,大多数的LDAP目录服务器并不适合存储需要经常改变的数据。

4)LDAP的信息模型

在LDAP中信息以树状方式组织,在树状信息中的基本数据单元是条目,而每个条目由属性构成,属性中存储有属性值LDAP中的信息模式,类似于面向对象的概念,在LDAP中每个条目必须属于某个或多个对象类(objeCtclass),每个ObjectClaSS由多个属性类型组成,每个属性类型有所对应的语法和匹配规则对象类和属性类型的定义均可以使用继承的概念。每个条目创建时,必须定义所属的对象类,必须提供对象类中的必选属性类型的属性值,在LDAP中一个属性类型可以对应多个值。

在LDAP中把对象类、属性类型、语法和匹配规则统称为Schema,在LDAP中有许多系统对象类、属性类型、语法和匹配规则,这些系统Schema在LDAP标准中进行了规定,同时不同的应用领域也定义了自己的Schema,同时用户在应用时,也可以根据需要自定义Schema。这有些类似于XML,除了XML标准中的xML定义外,每个行业都有自己标准的DTD或DOM定义,用户也可以自扩展也如同XML,在LDAP中也鼓励用户尽量使用标准的Schema,以增强信息的互联互通。

三、系统架构设计

1、体系架构

根据中国网通现有的行政管理结构,有两种系统架构可供选择:全集团统一或者分省独立。这两种结构都各自有自己的优缺点,如果集团统一部署那么将为统一管理和应用系统的统一支持提供方便如果采用分省独立部署,那么将为各省提供更大的自主性,当各省建立自己的管理手段和应用支持时将更加灵活。

在统筹考虑企业的统一性和各省分公司的管理自主性,经过讨论和筛选,最终形成的系统建设思路为:全企业共享一套身份认证系统架构(Schema)定义,每省分公司独立拥有本省的管理边界。各系统建设完成后,物理上将在全国形成如图4一1所示的系统架构:

2、技术选型和论证

目前在世界上有很多家大型企业都有自己的基于LDAP协议的统一身份认证管理产品。有微软公司的AetiveDireetory,Novell公司的NDS,IBM公司的TivoliDireetoryServer,SUN公司的iPlanetDireetoryServer,Apple公司的opendirectory。其中在国内使用较多的产品为微软公司的ActiveDireetory,Novell公司的NDS,IBM公司的TivoliDireetoryServer。

各家公司设计的身份认证管理产品都符合LDAP的统一标准,主要的差异在于对于信息的存储机制、信息的更新机制、部署结构等具体的实施措施上。其中从大类上可以分为两类:一类是以ActiveDirectory为代表的多主复制结构,另一类为以NDS为代表的单主复制结构。由于IBM公司的DireCtoryServer更多的被用在应用Directory场合,很少使用于企业IT管理内,所以主要的产品对t匕将在ACtiveDireetory与NDS之间进行。

3、设备选型

在确定技术路线和产品后,从节省费用考虑,确定选择IBM的主流底端PC服务器作为系统承载平台。最终选择IBMX336型服务器,主要配置为ZCPU/ZGRAM/73*ZHI)。

4、总结

设计企业安全管理系统的层级结构面临着诸多考验,必须结合实际管理模式出发才能够完成。本回答中的架构依照中国网通集团作为参考,具体到公司内需要区别对待。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10028855.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存