在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才能使用)

    接下来要研究的就是通过程序访问和修改服务器节点的数据了,再接再厉:)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值