如何在Windows环境下设置OpenLDAP?
运行Windows OpenLDAP时的注意事项:
流程:
1. 下载必要的软件包
1.1 ldap windows 安装包:
http://lucas.bergmans.us/hacks/openldap/
1.2 ldap browser:
URL:http://www-unix.mcs.anl.gov/~gawor/ldap/
2. 安装并配置ldap
2.1 直接双击默认安装;
2.2 配置ldap:
1.)删除所有data/目录下的文件;
2.)创建domain.ldif,内容如下(根据具体情况进行相应的更改, 在编辑domain.ldif文件时,不能保存为UTF-8编码,否则解析会出现错误,可以保存成ASCII格式):
dn:dc=kkdpro,dc=tc,dc=com
objectclass:dcObject
objectclass:organization
o:companyinfo
dc:kkdpro
3.)修改slapd.conf的最后一项为:
#######################################################################
# BDB database definitions
#######################################################################
database bdb
suffix "dc=kkdpro,dc=tc,dc=com"
rootdn "cn=root,dc=kkdpro,dc=tc,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw {SSHA}9btKtIgM2P4lTEGiYufRxNN5rFeRVE9k
[注:rootpw是管理员密码,这里必须用密文设置(密文可以用slappasswd -s pwd命令得到)]
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory ./data
# My custom conf
4.)运行命令: slapadd -f slapd.conf -l data/domain.ldif
[注:以上所有步骤均不需要启动ldap]
5.)启动ldap服务(运行slapd或者启动openldap服务)
可使用客户端工具(ldap browser)进行测试。
[注:默认v3,端口是389]
另外一篇:
在windows上配置openldap
(1) 如果你不幸得到"ldap_bind: Invalid credentials (49)"错误,就表示你要么给出了错误的"cn="条目,要么给出了错误的密码。
只有普通名(cn)和密码在slapd.conf中都正确,才不会出现任何关于他们的任何莫名其妙的信息
(还有一种可能就是ldif文件每行后边不能有空格,不然会报语法错误)
(2) 往服务器添加数据时首先要先加入一个根节点,不然报no such entry(object)之类的错误
加根节点的ldif范例如下:
dn:dc=gsmd,dc=com
dc:gsmd
description:www.cssis.com
objectClass:dcObject
objectClass:organization
o:cssis
注意:dn要和slapd的suffix "dc=gsmd,dc=com"相对应
添加根节点的命令:ldapadd -f ./data/root.ldif -x -D "cn=Manager,dc=gsmd,dc=com" -w secret
(3)建立旁支节点比如mail
根节点的ldif范例如下:
dn: ou=mail,dc=gsmd,dc=com
objectClass: organizationalUnit
ou: mail
description: Mail Directory
添加旁支节点的命令如下:ldapadd -f ./data/mail.ldif -x -D "cn=Manager,dc=gsmd,dc=com" -w secret
(4)建立自己的数据库表(schema文件)
文件的名称即相当于表名
接下来就是要定义'表的字段'了
定义:
AttributeTypeDescription = "(" whsp
numericoid whsp ; AttributeType identifier
[ "NAME" qdescrs ] ; name used in AttributeType
[ "DESC" qdstring ] ; description
[ "OBSOLETE" whsp ]
[ "SUP" woid ] ; derived from this other
; AttributeType
[ "EQUALITY" woid ; Matching Rule name
[ "ORDERING" woid ; Matching Rule name
[ "SUBSTR" woid ] ; Matching Rule name
[ "SYNTAX" whsp noidlen whsp ] ; Syntax OID
[ "SINGLE-VALUE" whsp ] ; default multi-valued
[ "COLLECTIVE" whsp ] ; default not collective
[ "NO-USER-MODIFICATION" whsp ]; default user modifiable
[ "USAGE" whsp AttributeUsage ]; default userApplications
whsp ")"
AttributeUsage =
"userApplications" /
"directoryOperation" /
"distributedOperation" / ; DSA-shared
"dSAOperation" ; DSA-specific, value depends on server
其中,NAME是表示属性的名字,DESC是说明,SUBSTR是字符串匹配,EQUALITY是相等性匹配,SYNTAX是表示字段的数据类型,
SINGLE-value表示这个属性只有一个值,有些属性可以有多个值,比如联系地址等。默认的话,是多值的。
whsp是一个空格,numericoid是一个全局唯一的点分十进制格式的OID(例如:1.1.0),qdescrs是一个或者多个名称,
woid或者是OID的名称,或者是OID后面加上可选的长度说明(比如:{10})。
(可参见RFC2252 Attribute Type Description)
示例:
attributeType ( 2.5.4.41 NAME 'name'
DESC 'name(s) associated with the object'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
说明:EQUALITY和SYNTAX声明列属性的类型,注意要与倒入的数据一致
schema文件结尾对'表'进行声明
示例:
objectclass ( 1.1.2.1
NAME 'cssisMail'
DESC 'the mailSystem of cssis'
SUP top
STRUCTURAL
MUST ( employeeID $ employeeName $ mailAddress )
MAY ( mobilePhone )
)
说明:NAME为表的名字,SUP此表的父表(有点像面向对象) top表示顶层没有父级表
MUST表示必选项,MAY表示可以选项(要把schema文件include进slapd.conf才能使用)
本文地址:http://www.45fan.com/dnjc/68132.html