LDAP配置
Oracle LDAP设置指南

Oracle LDAP 设置指南一.概述本指南用于说明如何使用LDAP 服务器保存邮件系统用户信息。
邮件服务器用户验证结构如下:验证服务器用于跨数据库,LDAP服务器的验证中心。
邮件服务器把验证请求发送到验证服务器,验证服务器再根据具体的后台用户信息保存类型进行相应的用户信息读取,验证。
二.LDAP 服务器设置本指南以OpenLDAP 做为例子LDAP 服务器。
配置步骤如下:1)把以下schema 文件(turbomail.schema)加入openldap/etc/schema.attributetype ( 5.1.1.1 NAME 'domain'DESC 'domain name'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.2 NAME 'enable'DESC 'enable'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )attributetype ( 5.1.1.3 NAME 'enablesmtp'DESC 'enable_smtp'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )attributetype ( 5.1.1.4 NAME 'enableimap4'DESC 'enable_imap4'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )attributetype ( 5.1.1.5 NAME 'enablepop3' DESC 'enable_pop3'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )attributetype ( 5.1.1.6 NAME 'enablewebaccess' DESC 'enable_webaccess'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )attributetype ( 5.1.1.7 NAME 'enablelocaldomain' DESC 'enable_webaccess'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )attributetype ( 5.1.1.8 NAME 'enablesms'DESC 'enable_sms'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )attributetype ( 5.1.1.9 NAME 'maxmailboxsize' DESC 'max_mailbox_size'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )attributetype ( 5.1.1.10 NAME 'maxmailboxmsgs' DESC 'max_mailbox_msgs'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )attributetype ( 5.1.1.11 NAME 'usertype'DESC 'usertype'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )attributetype ( 5.1.1.12 NAME 'tpassword'DESC 'tpassword'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.13 NAME 'modifytime' DESC 'modifytime'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.14 NAME 'firstname'DESC 'firstname'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.15 NAME 'organization' DESC 'organiztion'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.16 NAME 'department' DESC 'department'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.17 NAME 'address'DESC 'address'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.18 NAME 'city'DESC 'city'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.19 NAME 'tpostalcode' DESC 'tpostalcode'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.20 NAME 'telephone'DESC 'telephone'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.21 NAME 'stateprovince' DESC 'stateprovince'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.22 NAME 'country'DESC 'country'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.23 NAME 'items'DESC 'items'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )attributetype ( 5.1.1.24 NAME 'mobile'DESC 'mobile'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.25 NAME 'realname'DESC 'realname'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.26 NAME 'receivecond' DESC 'receivecond'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.27 NAME 'remaincopy' DESC 'remaincopy'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.28 NAME 'replacercpt'DESC 'replacercpt'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )attributetype ( 5.1.1.29 NAME 'users'DESC 'users'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{2046} )attributetype ( 5.1.1.30 NAME 'helodomain'DESC 'helodomain'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.31 NAME 'bdefault'DESC 'bdefault'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{6} )attributetype ( 5.1.1.32 NAME 'enablereg'DESC 'enablereg'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{6} )attributetype ( 5.1.1.33 NAME 'domainusers' DESC 'domainusers'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )attributetype ( 5.1.1.34 NAME 'license'DESC 'license'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.35 NAME 'totalmailboxsize' DESC 'totalmailboxsize'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )attributetype ( 5.1.1.36 NAME 'notetime'DESC 'notetime'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )attributetype ( 5.1.1.37 NAME 'state'DESC 'state'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )attributetype ( 5.1.1.38 NAME 'notesetdisable' DESC 'notesetdisable'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )attributetype ( 5.1.1.39 NAME 'lastname'DESC 'lastname'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.40 NAME 'noteaddress' DESC 'noteaddress'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.41 NAME 'username'DESC 'username'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )attributetype ( 5.1.1.42 NAME 'smsenablesms' DESC 'enable_sms'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )attributetype ( 5.1.1.43 NAME 'needapprove' DESC 'needapprove'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{5} )attributetype ( 5.1.1.44 NAME 'jointype'DESC 'jointype'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )attributetype ( 5.1.1.45 NAME 'visibletype' DESC 'visibletype'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )attributetype ( 5.1.1.46 NAME 'subscribe'DESC 'subscribe'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )attributetype ( 5.1.1.47 NAME 'unsubscribe' DESC 'unsubscribe'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )objectclass ( 5.1.1.99 NAME 'mailuser'DESC 'mailuser'SUP top STRUCTURALMUST ( username )MAY ( domain $ enable $ enablesmtp $ enableimap4 $enablepop3 $ enablewebaccess $ enablelocaldomain $ enablesms $maxmailboxsize $ maxmailboxmsgs $ usertype $ tpassword $modifytime $ firstname $ lastname $ organization $ department $ address $city $ tpostalcode $ telephone $ stateprovince $ country $ items $ mobile $realname $ receivecond $ remaincopy $ replacercpt $ users $ needapprove $ jointype $ visibletype $ subscribe $ unsubscribe) )objectclass ( 5.1.1.98 NAME 'maildomain'DESC 'maildomain'SUP top STRUCTURALMUST ( domain )MAY( helodomain $ bdefault $ enablereg $ domainusers $ license $ enable $ enablesmtp $ enableimap4 $enablepop3 $ enablewebaccess $ enablelocaldomain $ enablesms $maxmailboxsize $ maxmailboxmsgs $ totalmailboxsize $ notetime $noteaddress $ state $ notesetdisable $ modifytime $ smsenable) )2)配置ldapd.conf,加入以下指定turbomail.schema 的配置。
LDAP服务器的配置

LDAP服务器的配置通过如下命令*:\IBM\WebSphere\wp_profile\PortalServer\wizard\configwizard.bat,(AIX下命令:*:\IBM\WebSphere\wp_profile\PortalServer\wizard\./configwizard.sh)进入配置安全性(可视化配置,关闭server1和WebSphere_Portal两个server)O=sxnx,(“0”表示组织和你domino中组织名对应)利用命令行配置ldap修改配置文件,标准配置文件标准配置说明文件标准配置标准文件IBM\WebSphere\wp_profile\ConfigEngine\目录下执行以下命令执行命令任务之前,请先确认此时PORTAL和W AS服务器处于停止状态。
\IBM\WebSphere\wp_profile\bin>serverStatus.bat –all 查看当前服务器状态命令:1ConfigEngine.bat validate-standalone-ldap -DWasPassword=passw0rd(AIX下./ConfigEngine.sh validate-standalone-ldap -DWasPassword=passw0rd)错误信息1:action-validate-ldap-connection:Thu Jan 14 15:40:29 CST 2010[ldapcheck]############################################################### [ldapcheck] ldapURL : 9.1.7.13:389[ldapcheck] ldapUser : cn=wpbind,o=sxnx[ldapcheck] ldapPassword : ******************[ldapcheck] ldapSslEnabled : false[ldapcheck] javax.naming.AuthenticationException: [LDAP: error code 49 - Failed,invalid credentials for cn=wpbind,o=sxnx][ldapcheck] ERROR: 4[ldapcheck] Invalid or insufficient authorization privileges.BUILD FAILED解决:可能配置文件中没有修该完全。
Web认证使用LDAP无线局域网控制器(WLCs)配置示例

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徽标和思科特定的文字。
BIEE与LDAP权限

BIEE/BIP通过LDAP进行权限验证一.LDAP简介LDAP的英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。
简单介绍下LDAP,相关资料网上很多。
LDAP就是一种目录,与关系型数据库不同,关系数据库是表结构。
LDAP采用是树形结构的存储,因为树形结构便于查询,速度很快,但插入的速度很慢,插入时候要遍历树,找相关的节点。
这种树结构更适合存储一些特殊结构的数据,例如公司的组织结构,树根节点存储公司名,根节点下有部门,部门下有员工。
在公司组织结构应用比较广泛。
1.1 LDAP配置LDAP目录树的最顶部就是根,也就是所谓的“基准DN"。
基准DN通常使用下面列出的三种格式之一。
假定我在名为FooBar的电子商务公司工作,这家公司在Internet上的名字是。
1.o="Coscon, Inc.", c=US (以X.500格式表示的基准DN)。
在这个例子中,o= Coscon, Inc. 表示组织名,在这里就是公司名的同义词。
c=US 表示公司的总部在美国。
2.o= (用公司的Internet地址表示的基准DN)。
这种格式很直观,用公司的域名作为基准DN。
这也是现在最常用的格式。
3.dc= Coscon, dc=com (用DNS域名的不同部分组成的基准DN)。
公司节点下就可以是组织,一般对应OU,OU里应该对应人或者其他OU,我们简单介绍几个例子。
cn=Oatmeal Deluxe,ou=recipes,dc= Coscon,dc=com 。
cn是区别名,这个例子的意思是Oatmeal Deluxe在recipes这个组织里,recipes对应一个公司叫。
CN一般情况是用户名,也可以用Uid,就是Uid=zhanghe,ou=tech,dc= hand, dc=com 。
1.2 XXXX公司的LDAP结构XXXX公司的LDAP结构很简单,有一个用户叫People 的OU,下面都是用户。
LDAP服务器配置

LDAP服务器配置1.实验拓扑图2.实验准备wulijiSetenforce 是Linux的selinux防火墙配置命令执行setenforce 0 表示关闭linux防火墙。
Iptables -F 清空防火墙规则。
service NetworkManager stop关闭NetworkManager功能。
chkconfig NetworkManager off禁止它开机启动。
service network restart 重启网络服务3.虚拟机(客户端)设置3.1建立虚拟机与物理机之间的桥接模式(虚拟机必须是关机状态)进行桥接模式的设置,点击Edit菜单选项,选择Connection Details,选择eth0网卡,点击+号,进入Configure network interface选项卡,Interface type选择Bridge(桥接)模式,点击Forward进行下一步配置3.2Start mode(启动模式)选择onboot(开机启动),activate now(现在激活)点勾,choose interface to Bridge,选择eth0网卡,点击Finish3.3打开VM虚拟机rhel6选择硬件设置,点击NIC选项设置网卡,Source device 选择 host device eth0(bridge“br0”),device model (刚才建立的桥接模式的网卡)选择 hypervisor default (默认程序管理模式)3.4点击power键开启虚拟机输入指令setenforce 0Iptables -Fservice NetworkManager stopchkconfig NetworkManager offping 192.168.1.xxx 测试是否能连通服务器4服务器设置4.1配置NFS服务器在服务器上配置exports文件,Vim /etc/exports,共享挂载目录,并授权挂载IP客户端地址为192.168.1.0/24,rw参数为读写权限,sync保持同步, no_root_squash防止ROOT降级为普通用户。
ldap协议格式

ldap协议格式摘要:1.LDAP 协议简介2.LDAP 协议的基本组成部分3.LDAP 协议的数据格式4.LDAP 协议的常用操作5.LDAP 协议的应用场景正文:1.LDAP 协议简介LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)是一种用于访问和维护分布式目录服务的开放式标准协议。
它运行在客户机/服务器模型中,允许客户端查询和修改服务器上的目录信息。
2.LDAP 协议的基本组成部分LDAP 协议主要包括以下几个基本组成部分:(1) LDAP 客户端:负责发起LDAP 请求并处理服务器响应的客户端程序。
(2) LDAP 服务器:负责接收客户端请求并提供目录服务的服务器端程序。
(3) LDAP 目录树:存储在服务器上的层次结构目录,包含了各种目录信息。
(4) LDAP 条目:目录树中的基本单元,包含了唯一的标识符(Distinguished Name,简称DN)和相关的属性值。
3.LDAP 协议的数据格式LDAP 协议采用文本格式进行数据表示,其基本格式为:```LDAP请求/响应LDAP 数据```其中,LDAP 请求/响应包括请求/响应的方法、协议版本、操作类型等;LDAP 数据则包含了目录树、条目和属性值等信息。
4.LDAP 协议的常用操作LDAP 协议提供了丰富的操作方法,主要包括以下几类:(1) 搜索(Search):客户端可以通过搜索操作查询服务器上的目录信息。
(2) 添加(Add):客户端可以通过添加操作向服务器上的目录树添加新的条目。
(3) 修改(Modify):客户端可以通过修改操作更新服务器上已有的目录信息。
(4) 删除(Delete):客户端可以通过删除操作从服务器上的目录树中移除条目。
(5) 查询(Inquire):客户端可以通过查询操作获取服务器上目录信息的详细描述。
5.LDAP 协议的应用场景LDAP 协议广泛应用于各种分布式目录服务中,如:(1) 企业内部目录服务:用于存储员工信息、组织架构、资源共享等。
ldaptemplate 构造

标题:ldaptemplate 构造一、概述在Java开发中,使用LDAP(轻量级目录访问协议)进行用户和组织架构管理是很常见的需求。
为了方便对LDAP进行操作,Spring提供了ldaptemplate来简化LDAP的访问和操作。
本文将介绍如何使用ldaptemplate进行LDAP的构造。
二、依赖引入在使用ldaptemplate之前,需要在项目中引入相应的依赖。
可以通过Maven或Gradle来进行依赖管理,以下是Maven引入ldaptemplate的依赖方式:```xml<dependency><groupId>org.springframework.ldap</groupId><artifactId>spring-ldap-core</artifactId><version>2.3.2.RELEASE</version></dependency>```三、配置LDAP连接在使用ldaptemplate之前,首先需要配置LDAP的连接信息,包括LDAP服务器的URL、用户名、密码等。
通常可以通过Spring的配置文件(如application.properties或application.yml)来进行配置,以下是一个配置LDAP连接的示例:```propertiesldap.url=ldap://localhost:389ldap.base=dc=example,dcername=admin,dc=example,dcldap.password=admin```四、构造ldaptemplate构造ldaptemplate通常需要注入LdapContextSource和LdapTemplate两个Bean,其中LdapContextSource用于配置LDAP连接信息,而LdapTemplate用于执行LDAP操作。
Fanvil-话机LDAP

图 3.1 LDAP 系统结构图
3.2 LDAP 中的 objectClass 与 Attribute
LDAP 支持对条目能够和必须支持哪些属性进行控制,这是由一个特殊的称为对象类别 (objectClass)的属性来实现的。该属性的值决定了该条目必须遵循的一些规则,其规定了该条目 能够及至少应该包含哪些属性。
方位可以在没有任何通知或提示的情况下随时对本文档中的内容进行修改。虽然方位力图在文档中 提供准确的材料和信息,但方位并不保证这些材料和内容的准确、完整、充分、兼容和可靠性。方位保 留随时修改本文档中的服务(全部或部分)而无需事先告知用户的权利,方位在行使前述各项权利时亦 无需对用户承担任何责任。本文档中描述的产品或功能可能存在已知的设计缺陷或错误(已在勘误表中 注明),可能会导致产品与已发布的规范相背离,可应要求提供最新的勘误表。方位并不就文档中提供 的任何产品、服务或信息做出任何声明、保证或认可,所有销售的产品和服务应受本公司的销售合同和 条款的约束。请在下订单之前联系您当地的方位销售办事处或您的经销商以获得产品最新规格说明。
象都有一个惟一的名称,如
“uid=tom,ou=test,dc= winline,dc=com”
rdn
Relative dn
相对辨别名,类似于文件系统中的相对路径,它是与目录树 结构无关的部分,如“uid=tom”或“cn= Thomas Johansson”
2.4 参考资料
1./link?url=brydQRx82r5-GrGiY10z_TWpXH97udnb0FvgmTPBUwja3s4SUBAccI pYuom5XbpI2Foae9pno9pdKGwaD3sOgYIOoE-jGgAasHwRRq-0Bda 2./techdoc/net/2007/01/20/948652.shtml
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LDAP 中的访问控制列表本节介绍Senior Level Linux Professional (LPIC-3) 301 考试的303.2 主题的内容。
此主题的权值是2。
在本节中,学习如何:∙计划LDAP 访问控制列表∙了解访问控制语法∙授予和撤消LDAP 访问权限LDAP 树中可以存储各种数据,包括电话号码、出生日期和工资表信息。
其中一些数据可能是公开的,一些数据可能只能由由特定的人访问。
根据用户的不同,同样的信息可能有不同的限制。
例如,也许只有记录的所有者和管理员可以更改电话号码,但是每个人都可以读取这些号码。
访问控制列表(ACL) 处理这些限制的配置。
计划LDAP 访问控制列表在开始编写配置之前,应该确定要实现的目标。
树的哪部分包含敏感信息?哪些属性需要保护,保护其不被谁访问?如何使用树?ACL 的组件ACL 条目提供三条信息:1.ACL 指定what条目和属性2.ACL 应用于who3.授予的access级别指定 “what” 子句时,可以选择根据对象的区分名(distinguished name ,DN )、LDAP 风格的查询筛选器、属性列表或以上三者的组合来进行筛选。
最简单的子句允许一切内容,但也可以有很多限制。
根据 DN 筛选允许您指定精确匹配,比如ou=People,dc=ertw,dc=com 或正则表达式 (参阅 “正则表达式”)查询筛选器可以匹配特定的 objectClass 或其他属性。
属性列表中的属性名称用逗号分隔。
更复杂的匹配条件可以是 “身份是管理员的ou=People,dc=ertw,dc=com 下的所有密码条目”。
可以灵活地确定将 ACL 应用于 who 。
用户一般由绑定到树上的 DN 来识别,这称为 bindDN 。
每个 LDAP 条目可以具有一个userPassword 属性,用于对特定的用户进行身份验证。
在一些上下文中,您可以将当前登录的用户称为自己, 这有利于允许用户编辑自己的详细信息。
如果用户没有绑定,则被视为匿名用户。
默认情况下,匿名用户可以读取树,所以您必须决定是否需要更改此行为。
可以通过 IP 地址或用于连接的方法(比如明文和加密的方法)来对匿名用户(或任何用户)进行分割。
一旦确定了 what 和 who ,必须确定访问级别。
访问权限可以是无 一直到写 访问。
还可以指定用户可以验证条目,但不可以读取;或可以允许用户读取、搜索和比较访问。
无论如何配置您的 ACL ,任何已配置的 rootDN 用户可以完全控制其数据库。
不可以对此进行更改,除非将 rootDN 配置从 slapd.conf 中移除。
了解访问控制语法ACL 的基本格式使用 Backus-Naur Form 表示,也就是:access to <what> [ by <who> [ <access> ] [ <control> ] ]+描述 whatwhat 描述 ACL 强制的属性和条目。
实现此目标的 BNF 表示法如清单 1 所示。
清单 1. ACL 的 what 部分的 BNF 描述清单1 的一些元素在此处没有定义,例如DN 和正则表达式。
区分名的形式是已知的,正则表达式最好在BNF 之外研究。
清单1 显示了ACL 的what 部分的描述可以是星号字符(*)(它可以匹配一切内容),或者是DN、LDAP 筛选器、属性列表的组合。
后者可以使用三个组件中的一个或多个,因为它们分别被方括号括起来。
清单2 显示了与DN 匹配的三个what 子句清单 2. 三个示例what 子句第一个示例仅与ou=people,dc=ertw,dc=com条目匹配。
如果使用此ACL,则它不与任何子条目匹配,例如cn=Sean Walberg,ou=people,dc=ertw,dc=com,也不与父条目匹配。
第二个示例与第一个相似,但是它使用正则表达式,并使用美元符号($) 字符锚定(anchor)搜索字符串。
锚与字符串的位置匹配,而不是与字符串的一部分匹配。
美元符号与字符串的结尾部分匹配,因此第二个示例与以ou=people,dc=ertw,dc=com结尾的任何条目匹配,包括cn=SeanWalberg,ou=people,dc=ertw,dc=com。
注意,如果没有锚,搜索字符串可以位于目标内的任何位置,例如ou=people,dc=ertw,dc=com,o=MegaCorp。
清单2 中的第三个示例显示另一个锚,^,它与字符串的开始部分匹配。
第三个示例也使用另一个正则表达式.*。
句点与任何一个字符匹配,星号与0 个或多个前导字符匹配。
因此.*与一个或多个字符的任何字符串匹配。
总之,第三个示例与以cn=Sean开始、以dc=com结尾的任何条目匹配。
还可以根据LDAP 查询进行筛选,这对objectClass上的搜索最有帮助。
例如,filter=(objectClass=posixAccount)的what 子句仅与具有posixAccount的objectClass的条目匹配。
要复习objectClass,请查看此系列的第一篇教程,LPI 301 考试准备:概念、体系结构和设计。
what 子句的最后一个选项是指定属性。
最常见的用法是限制谁可以查看私有属性,尤其是密码。
使用attrs=userPassword匹配密码属性。
一旦确定了要匹配的的条目和属性,就必须描述规则将应用于谁。
描述who访问将根据在客户机绑定到树时提供的DN 来应用到用户。
DN 通常可以在树上找到,但也可能是slapd.conf 中提供的rootDN。
清单3 显示ACL 的who 部分的BNF 表示法。
清单 3. 匹配ACL 的who 部分的BNF 表示法<who> ::= * | [anonymous | users | self[.<selfstyle>]| dn[.<basic-style>]=<regex> |dn.<scope-style>=<DN>][dnattr=<attrname>][group[/<objectclass>[/<attrname>][.<basic-style>]]=<regex>][peername[.<peernamestyle>]=<peername>][sockname[.<style>]=<sockname>][domain[.<domainstyle>[,<modifier>]]=<domain>][ssf=<n>][transport_ssf=<n>][tls_ssf=<n>][sasl_ssf=<n>]<style> ::= {exact|regex|expand}<selfstyle> ::= {level{<n>}}<dnstyle> ::= {{exact|base(object)}|regex|one(level)|sub(tree)|children|level{<n>}}<groupstyle> ::= {exact|expand}<peernamestyle> ::= {<style>|ip|path}<domainstyle> ::= {exact|regex|sub(tree)}<modifier> ::= ={expand}与ACL 的what 部分中一样,星号匹配一切内容。
要想获得更特定的功能,还有许多选项。
OpenLDAP 定义anonymous、users和self三种快捷方式。
这些快捷方法分别与未注册用户、已验证用户和当前登录用户匹配。
后面的self通常用于允许登录用户编辑自己的配置文件的组件。
这基于DN 的精确匹配;如果将用户的信息分割在不同的条目中,则self关键字仅适用于与用户绑定的条目。
有关self关键字的一个有趣的特性是:还可以使用level关键字将ACL 应用于用户条目的父条目或子条目。
使用self.level{1}匹配用户的条目和父条目,而self.level{-1}匹配用户的条目和任何直接附加的子条目。
继续讨论DN,可以分别使用dn.exact="DN"和dn.regex="regex"执行正则表达式或精确匹配。
稍后一个示例将显示如何使用正则表达式动态地将what 和who 捆绑到一起。
可以使用dnattr关键字保护任意条目,此关键字还需要属性名称。
如果请求者的DN 出现在目标的特定属性中,则与ACL 匹配。
例如,如果将dnattr=manager添加到您的ACL 中,然后将manager: cn=Joe Blow,ou=people,dc=ertw,dc=com添加到Fred Smith 的条目中,ACL 将在Joe Blow 访问Fred Smith 的条目时进行匹配。
group 关键字与 dnattr 类似,除了参数表示在树中其他地方定义的组,而非条目中的属性。
默认情况下,此组具有 groupOfNames 的 objectClass ,其成员在 member 属性中引用。
使用 peername 、 sockname 和 domain 关键字匹配客户机连接的属性。
peername 表示客户机的 IP 地址,例如 peernameip=127.0.0.1。
sockname 用于命名管道上的连接,并不常用。
domain 匹配与 IP 地址相关的主机名,它容易被假冒。
最后一组选项表示连接的 Security Strength Factor (SSF),它是连接安全级别的 OpenLDAP 术语。
当涉及到用于连接 OpenLDAP 的安全机制时,比如 Transport Layer Security (TLS) 和 Simple Authentication and Security Layer (SASL),这些选项将变得更加清楚。
前面所有的项可以一起使用。
例如,可以仅允许来自特定 IP 地址范围的特定管理员对具有特定加密级别的密码字段进行写访问。
也可以不这么严格,例如仅要求有效登录,或甚至接受每个人,而不考虑身份验证。
描述 access一旦已经确定谁在访问树,以及他们准备访问什么内容,就必须指定访问的级别。
清单 4 显示 ACL 的 access 部分的 BNF 表示法。