570 likes | 828 Views
第 13 章 LDAP 服务的配置与应用. 本章导读 目录服务概述 LDAP 基础 LDAP 服务的安装 初始化 OpenLDAP phpLDAPadmin 的安装 配置 phpLDAPadmin 使用 phpLDAPadmin 管理目录树 LDAP 服务的身份验证实例. 13.1 目录服务概述. X.500 简介 LDAP 简介 LDAP 与 X.500 的比较 流行的目录服务产品. X.500 简介. X.500 由 ITU-T 和 ISO 定义,它实际上不是一个协议,它是由一个协议族组成
E N D
第13章 LDAP服务的配置与应用 本章导读 • 目录服务概述 • LDAP基础 • LDAP服务的安装 • 初始化OpenLDAP • phpLDAPadmin的安装 • 配置phpLDAPadmin • 使用phpLDAPadmin管理目录树 • LDAP服务的身份验证实例
13.1目录服务概述 • X.500简介 • LDAP简介 • LDAP与X.500的比较 • 流行的目录服务产品
X.500简介 X.500由ITU-T和ISO定义,它实际上不是一个协议,它是由一个协议族组成 的,包括了从X.501到X.525等一系列非常完整的目录服务。 X.500主要具备以下特征。 分散维护:运行X.500的每个站点只负责其本地目录部分,所以可以立即进行更新和维护操作。 强大的搜索性能:X.500具有强大的搜索功能,支持用户建立的任意复杂查询。 单一全局命名空间:类似于DNS,X.500为用户提供单一同性命名空间(Single Homogeneous Namespace)。与DNS相比,X.500的命名空间更灵活且易于扩展。 结构化信息结构:X.500目录中定义了信息结构,允许本地扩展。 基于标准的目录服务:由于X.500可以被用于建立一个基于标准的目录,因此在某种意义上,请求应用目录信息(电子邮件、资源自动分配器、特定目录工具)的应用程序就能访问重要且有价值的信息。
LDAP简介 LDAP是X.500标准中的目录访问协议DAP的一个子集,可用于建立 X.500目录。因此这两个目录服务技术标准有着许多的共同之处,即在 平台上,都实现了一个通用的平台结构,提供了一个操作系统和应用程 序需要的信息服务类型,可以被许多平台和应用程序接收和实现;在信 息模型上,都使用了项、对象类、属性等概念和模式来描述信息;在命 名空间方面,都使用了目录信息树结构和层次命名模型;在功能模型 上,都使用了相似的操作命令来管理目录信息;在认证框架方面,都可 以实现用户名称和密码,或者基于安全加密方式的认证机制;在灵活性 上,它们的目录规模都可大可小,大到全球目录树,小到只有一台目录 服务器;在分布性方面,目录信息都可以分布在多个目录服务器中,这 些服务器可以由各组织管理,既保证了目录信息总体结构的一致性,又 满足了分级管理的需要。
LDAP简介 LDAP具有下列特点: LDAP是一个跨平台的、标准的协议,得到了业界广泛的认可; LDAP服务器可以使用基于“推”或“拉”的技术,用简单的或基于安全证书的安全认证,复制部分或全部数据,既保证了数据的安全性,又提高了数据的访问效率; LDAP是一个安全的协议,LDAP v3支持SASL(Simple Authentication and Security Layer)、SSL(Secure Socket Layer)和TLS(Transport Layer Security),使用认证来确保事务的安全,另外,LDAP提供了不同层次的访问控制,以限制不同用户的访问权限; 支持异类数据存储,LDAP存储的数据可以是文本资料、二进制图片等; 大多数的LDAP服务器安装简单,也容易维护和优化。
LDAP与X.500的比较 LDAP基于Internet协议,X.500基于OSI(开放式系统互联)协议,建立在应用层上的X.500目录访问协议DAP,需要在OSI会话层和表示层上进行许多的建立连接和包处理的任务,需要特殊的网络软件实现对网络的访问;LDAP则直接运行在更简单和更通用的TCP/IP或其他可靠的传输协议层上,避免了在OSI会话和表示层的开销,使连接的建立和包的处理更简单、更快,对于互联网和企业网应用更理想。 LDAP协议更为简单,LDAP继承了X.500最好的特性,同时去掉了它的复杂性。LDAP通过使用查找操作实现列表操作和读操作,另一方面省去了X.500中深奥的和很少使用的服务控制和安全特性,只保留常用的特性,简化了LDAP的实现。 LDAP通过引用机制实现分布式访问,X.500 DSA通过服务器之间的链操作实现分布式的访问,这样查询的压力集中于服务器端;而LDAP通过客户端API实现分布式操作(对于应用透明)平衡了负载。 LDAP实现具有低费用、易配置和易管理的特点。经过性能测试,LDAP比X.500具有更少的响应时间;LDAP提供了满足应用程序对目录服务所需求的特性。
流行的目录服务产品 1.NDS(Novell Directory Services) 2.Microsoft Active Directory(活动目录) 3.OpenLDAP
13.2LDAP基础 • LDAP的4种基本模型 • LDAP存储结构 • LDAP的基本概念 • 规划目录树 • LDAP服务的应用领域
LDAP的4种基本模型 1.信息模型 2.命名模型 3.功能模型 在LDAP中共有4类操作(共10种): (1)查询类操作,如搜索、比较; (2)更新类操作,如添加条目、删除条目、修改条目和修改条目名; (3)认证类操作,如绑定、解绑定; (4)其他操作,如放弃和扩展操作。 4.安全模型 (1)无认证 (2)基本认证 (3)SASL认证
LDAP存储结构 一棵目录信息树由若干条目(Entry)组成,每个条目有惟一的标识名DN (Distinguished Name),条目可以描述用户账号、打印机和计算机等对象。 一个条目是一个对象,每个条目由多个“属性(Attribute)”组成,每个属性由一 个类型和一个到多个值组成 ,每个属性可以对应一个或多个“值(Value)”,如 联系电话属性可以包含有多个值 。
LDAP的基本概念 LDAP目录服务器是通过目录数 据库来存储网络信息以提供目录服 务的。为了方便用户迅速查找和定 位信息,目录数据库是以目录信息 树(Directory nformation Tree,缩 写为DIT)为存储方式的树型存储 结构,目录信息树及其相关概念构 成了LDAP协议的信息模型 。
LDAP的基本概念 常用关键字及其对应的含义
规划目录树 要实现LDAP,第一步就是规划目录树,规划一个灵 活且易于扩展的目录树非常重要,它可以减少后期维 护目录树的工作量。
LDAP服务的应用领域 LDAP的应用主要涉及以下几种类型。 信息安全类:数字证书管理、授权管理、单点登录。 科学计算类:DCE(Distributed Computing Environment,分布式计算环境)、UDDI(Universal Description,Discovery and Integration,统一描述、发现和集成协议)。 网络资源管理类:MAIL系统、DNS系统、网络用户管理、电话号码簿。 电子政务资源管理类:内网组织信息服务、电子政务目录体系、人口基础库、法人基础库。
13.3 LDAP服务的安装 • Berkeley DB数据库的安装 • OpenLDAP的安装
Berkeley DB数据库的安装 1.下载BDB 2.安装BDB (1)编译安装BDB BDB的安装方法比较简单,使用以下命令编译安装。 tar zxvf db-4.6.18.tar.gz cd db-4.6.18/build_unix ../dist/configure make make install (2)配置系统动态链接库的路径 ① 编辑系统动态链接库的配置文件/etc/ld.so.conf,在文件的末尾加入如下语句。 /usr/local/BerkeleyDB.4.6/lib ②使用以下命令刷新系统动态链接库缓存,如图13-11所示。 /sbin/ldconfig
OpenLDAP的安装 1.下载OpenLDAP 2.安装OpenLDAP OpenLDAP的安装方法比较简单,可使用以下命令编译安装。 tar zxvf openldap-stable-20070110.tgz cd openldap-2.3.32 env CPPFLAGS="-I/usr/local/BerkeleyDB.4.6/include" LDFLAGS="-L/usr/local/BerkeleyDB.4.6/lib" ./configure --prefix=/usr/local/openldap --enable-bdb make depend make make test make install
13.4初始化OpenLDAP • OpenLDAP的基本配置 • 启动OpenLDAP服务器 • 建立初始化数据
OpenLDAP的基本配置 1.设置LDAP使用的Schema Schema(模式)定义了LDAP中的对象类型、属性、语法和匹配规则等,如用户的电子邮件、联系地址和联系电话等属性,它类似于关系数据库中的表结构。 找到语句: include /usr/local/openldap/etc/openldap/schema/core.schema 在该语句的后面添加以下语句。 include /usr/local/openldap/etc/openldap/schema/corba.schema include /usr/local/openldap/etc/openldap/schema/cosine.schema include /usr/local/openldap/etc/openldap/schema/dyngroup.schema include /usr/local/openldap/etc/openldap/schema/inetorgperson.schema include /usr/local/openldap/etc/openldap/schema/java.schema include /usr/local/openldap/etc/openldap/schema/misc.schema include /usr/local/openldap/etc/openldap/schema/nis.schema include /usr/local/openldap/etc/openldap/schema/openldap.schema
OpenLDAP的基本配置 2.设置目录树的后缀 找到语句: suffix "dc=my-domain,dc=com" 将其改为: suffix "dc=example,dc=com" 3.该语句设置LDAP管理员的DN 找到语句: rootdn "cn=Manager,dc=my-domain,dc=com" 将其改为: rootdn "cn=Manager,dc=example,dc=com" 4.设置LDAP管理员的口令 找到语句: rootpw secret 将其改为: rootpw {SSHA}NXV9Fl28qCHMmA6P sjhVX0uejTKE6OYr
启动OpenLDAP服务器 启动OpenLDAP服务器,应执行以下命令: /usr/local/openldap/libexec/slapd 为了确保slapd进程已经启动,应执行以下命令: pstree|grep "slapd" 如果出现“|-slapd”,则表示slapd进程已经成功启动
建立初始化数据 ① 建立LDIF文件。使用vi等文本编辑工具建立名为example.ldif的文件,内容如下: dn:dc=example,dc=com objectclass:dcObject objectclass:organization o:Example, Inc. dc:example dn:cn=Manager,dc=example,dc=com objectclass:organizationalRole cn:Manager
建立初始化数据 ② 执行以下命令导入数据。 /usr/local/openldap/bin/ldapadd -x -W -D "cn=Manager,dc=example,dc=com" -f example.ldif 命令执行输入LDAP管理员的口令
13.5 phpLDAPadmin的安装 • 安装Apache服务 • 下载phpLDAPadmin • 安装phpLDAPadmin • 配置Apache服务
安装Apache服务 由于基于Web界面的LDAP客户端软件 phpLDAPadmin使用PHP编写而成,因此在使用前 应安装Apache服务器并建立好PHP的运行环境。 由于phpLDAPadmin支持中文管理界面,因此还要 将Apache的默认字符集设置为中文(Apache服务 具体的安装和配置方法参见本书第7章Web服务的 配置与应用)。
下载phpLDAPadmin 使用Web浏览器访问http://prdownloads.sourceforge.net/phpld apadmin/处下载 phpLDAPadmin最新的稳定 版 。
安装phpLDAPadmin 安装phpLDAPadmin的具体步骤如下。 ① 使用下面的命令解压安装包。 tar zxvf phpldapadmin-0.9.8.4.tar.gz ② 使用下面的命令进入解压目录。 cp -a phpldapadmin-0.9.8.4 /usr/local/phpldapadmin
配置Apache服务 1.加入用户认证功能 2.建立虚拟目录 在Apache的主配置文件httpd.conf中加入以下语句建立虚拟目录。 Alias /phpldapadmin "/usr/local/phpldapadmin" <Directory "/usr/local/phpldapadmin"> AuthType Basic AuthName "Please Login to phpldapadmin" AuthUserFile /etc/httpd/php_ldap_admin_pwd Require user admin </Directory>
13.6配置phpLDAPadmin • 生成phpLDAPadmin主配置文件 • 配置phpLDAPadmin使用中文 • 配置phpLDAPadmin
生成phpLDAPadmin主配置文件 phpLDAPadmin的主配置文件是/usr/local/phpldapadmin/config/config.php.example,phpLDAPadmin提供了一个默认的例子文件config.php.example,使用以下的命令可生成phpLDAPadmin主配置文件。 cp /usr/local/phpldapadmin/config/config.php.example /usr/local/phpldapadmin/config/config.php
配置phpLDAPadmin使用中文 ① 编辑文件/usr/local/phpldapadmin/config/config.php,修改语句: // $config->custom->appearance['language'] = 'auto'; 将“//”注释符号去处,并将语句改为: $config-> custom->appearance['language'] = 'zh_CN'; ② 使用下列的命令转换phpLDAPadmin语言文件的编码。 iconv -f gbk -t utf8 /usr/local/phpldapadmin/locale/zh_CN/LC_MESSAGES/messages.po > /usr/local/phpldapadmin/locale/zh_CN/LC_MESSAGES/messages.new.po msgfmt -o /usr/local/phpldapadmin/locale/zh_CN/LC_MESSAGES/messages.mo /usr/ local/phpldapadmin/locale/zh_CN/LC_MESSAGES/messages.new.po
配置phpLDAPadmin (1)设置口令加密字符串 找到语句: $config->custom->session['blowfish'] = ' '; 将其改为: $config->custom- >session['blowfish'] = 'welcome'; (2)设置LDAP服务器的地址 找到语句: $ldapservers->SetValue($i,'server','host','127.0.0.1'); 将其改为LDAP服务器对应的名称和IP地址。 (3)设置目录树的基准DN 找到语句: $queries[$q]['base'] = 'dc=example,dc=com'; 根据实际将其改为目录树的基准DN。 (4)设置LDAP服务器管理员的DN 找到语句: $ldapservers->SetValue($i,'login','dn','cn=Manager,dc=example,dc=com'); 根据实际将其改为LDAP服务器管理员的DN。
配置phpLDAPadmin (5)设置LDAP服务器管理员的口令 找到语句: $ldapservers->SetValue($i,'login','pass',''); 确保其口令为空。 (6)设置用户认证方式 phpLDAPadmin提供了cookie、session和config这3种认证方式 找到语句: $ldapservers->SetValue($i,'server','auth_type','cookie'); 确保其认证方式为cookie。 用户认证方式
13.7使用phpLDAPadmin管理目录树 • 登录phpLDAPadmin • 创建OU • 创建用户组 • 创建用户账号
登录phpLDAPadmin 启动Apache服务,然后使用浏览器访问http://Linux服务器 的IP或域名/phpldapadmin/,输入用户名为“admin”和口令后 即可进入phpLDAPadmin的管理主页面 。