现有 LDAP 服务器中的 LDAP Schema 实现

现有 LDAP 服务器中的 LDAP Schema 实现

我有一个用户定义的模式,它将被添加到现有的 LDAP 服务器中。它的 ldif 格式为:

dn:cn=用户控制,cn=架构,cn=配置
对象类:olcSchemaConfig
cn: 用户控制
olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.1
    NAME‘性别属性’
    DESC ‘性别’
    平等案例忽略匹配
    SUBSTR 大小写忽略子字符串匹配
    语法 1.3.6.1.4.1.1466.115.121.1.15 )

olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.2
    名称‘dobAttr’
    DESC '出生日期'
    平等 generalizedTimeMatch
    排序 generalizedTimeOrderingMatch
    语法 1.3.6.1.4.1.1466.115.121.1.24 )

olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.3
    NAME‘语言属性’
    DESC ‘已知语言’
    平等案例忽略匹配
    SUBSTR 大小写忽略子字符串匹配
    语法 1.3.6.1.4.1.1466.115.121.1.15
    单值 )

olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.4
    名称 'mTongueAttr'
    DESC 'motherTongue'
    平等案例忽略匹配
    SUBSTR 大小写忽略子字符串匹配
    语法 1.3.6.1.4.1.1466.115.121.1.15
    单值 )


olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.5
    NAME '国籍属性
    DESC ‘国籍’
    平等案例忽略匹配
    SUBSTR 大小写忽略子字符串匹配
    语法 1.3.6.1.4.1.1466.115.121.1.15 )

olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.6
    名称‘worksAtAttr’
    降序排列‘worksAt’
    语法 1.3.6.1.4.1.1466.115.121.1.15 )

olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.7
    NAME‘资格属性’
    DESC ‘资格’
    平等案例忽略匹配
    SUBSTR 大小写忽略子字符串匹配
    语法 1.3.6.1.4.1.1466.115.121.1.15 )

olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.8
    NAME 'schoolAttr'
    DESC ‘学校’
    语法 1.3.6.1.4.1.1466.115.121.1.15 )

olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.9
    NAME 'collegeAttr'
    DESC ‘大学’
    语法 1.3.6.1.4.1.1466.115.121.1.15 )


olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.10
    NAME '地址属性'
    DESC ‘地址’
    语法 1.3.6.1.4.1.1466.115.121.1.15 )


olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.11
    NAME 'zipAttr'
    DESC 'pinCode'
    语法 1.3.6.1.4.1.1466.115.121.1.27 )

对象类 ( 1.3.6.1.4.1.xxxxx.1.2.1
    NAME‘用户控件’
    DESC 'RFC2798:新的定制架构'
    SUP 组织人员
    结构
    可能 (
        性别 $ 出生日期 $ 已知语言 $ 母语 $ 国籍 $ 工作地点 $ 资格 $ 学校 $ 大学 $ 地址 $ 邮政编码 $ 联系方式 $ 感兴趣 )

.schema 格式为

# 用户控制.架构
属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.1
    NAME‘性别属性’
    DESC ‘性别’
    平等案例忽略匹配
    SUBSTR 大小写忽略子字符串匹配
    语法 1.3.6.1.4.1.1466.115.121.1.15 )

属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.2
    名称‘dobAttr’
    DESC '出生日期'
    平等 generalizedTimeMatch
    排序 generalizedTimeOrderingMatch
    语法 1.3.6.1.4.1.1466.115.121.1.24 )

属性类型(1.3.6.1.4.1.xxxxx.1.1.3
    NAME‘语言属性’
    DESC ‘已知语言’
    平等案例忽略匹配
    SUBSTR 大小写忽略子字符串匹配
    语法 1.3.6.1.4.1.1466.115.121.1.15
    单值 )

属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.4
    名称 'mTongueAttr'
    DESC 'motherTongue'
    平等案例忽略匹配
    SUBSTR 大小写忽略子字符串匹配
    语法 1.3.6.1.4.1.1466.115.121.1.15
    单值 )


属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.5
    NAME '国籍属性
    DESC ‘国籍’
    平等案例忽略匹配
    SUBSTR 大小写忽略子字符串匹配
    语法 1.3.6.1.4.1.1466.115.121.1.15 )

属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.6
    名称‘worksAtAttr’
    降序排列‘worksAt’
    语法 1.3.6.1.4.1.1466.115.121.1.15 )

属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.7
    NAME‘资格属性’
    DESC ‘资格’
    平等案例忽略匹配
    SUBSTR 大小写忽略子字符串匹配
    语法 1.3.6.1.4.1.1466.115.121.1.15 )

属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.8
    NAME 'schoolAttr'
    DESC ‘学校’
    语法 1.3.6.1.4.1.1466.115.121.1.15 )

属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.9
    NAME 'collegeAttr'
    DESC ‘大学’
    语法 1.3.6.1.4.1.1466.115.121.1.15 )


属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.10
    NAME '地址属性'
    DESC ‘地址’
    语法 1.3.6.1.4.1.1466.115.121.1.15 )


属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.11
    NAME 'zipAttr'
    DESC 'pinCode'
    语法 1.3.6.1.4.1.1466.115.121.1.27 )

对象类 ( 1.3.6.1.4.1.xxxxx.1.2.1
    NAME‘用户控件’
    DESC 'RFC2798:新的定制架构'
    SUP 组织人员
    结构
    可能 (
        性别 $ 出生日期 $ 已知语言 $ 母语 $ 国籍 $ 工作地点 $ 资格 $ 学校 $ 大学 $ 地址 $ 邮政编码 $ 联系方式 $ 感兴趣 )

我尝试使用代码将 ldif 文件添加到 LDAP 中

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/userControl.ldif

但我收到了一个错误

ldapadd:格式无效(第 5 行)条目:“cn=userControl,cn=schema,cn=config”

我已经检查过解决方案并应用了它,但毫无用处。我仍然收到错误。我已将我的架构与其他架构进行了比较,并将 ldif 文件与其他 ldif 文件进行了比较,但没有发现任何错误。请有人帮助我解决这个问题。

我的操作系统是 Ubuntu 12.04 LTS。是否需要添加

# 全局配置设置
        dn: cn=config
        对象类:olcGlobal
        cn:配置

在 ldif 文件中。我试过了。但我也遇到了同样的错误。

答案1

坦率地说,您的整个模式一团糟。

  • 要在您的模式中定义objectClass,您需要一行olcObjectClasses::末尾带有。
  • 属性列表必须是NAME条目的列表,而不是DESC,因此它需要是MAY ( genderAttr $ dobAttr等。
  • NAME 'nationalityAttr错过收盘'
  • zipAttr邮政编码还是 PIN 码?
  • contactNumber并且interestedIn根本没有定义但在行中被引用olcObjectClasses
  • 任何属性后面的后缀Attr都是无用的。很明显它是一个属性,否则它应该是什么?
  • 条目之间的空行无效。

如果您解决了所有这些问题,您最终会得到类似下面的文件(仍然缺少联系人和兴趣),该文件很容易导入(88888用您的私人 OID 号码替换)。

dn: cn=userControl,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: userControl
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.1 
    NAME 'genderAttr'
    DESC 'gender'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.2
    NAME 'dobAttr'
    DESC 'dateOfBirth'
    EQUALITY generalizedTimeMatch
    ORDERING generalizedTimeOrderingMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
olcAttributeTypes: (1.3.6.1.4.1.88888.1.1.3
    NAME 'languageAttr'
    DESC 'languages known'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    SINGLE-VALUE )
olcAttributeTypes: (  1.3.6.1.4.1.88888.1.1.4
    NAME 'mTongueAttr'
    DESC 'motherTongue'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.5
    NAME 'nationalityAttr'
    DESC 'nationality'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.6
    NAME 'worksAtAttr'
    DESC 'worksAt'
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.7
    NAME 'qualificationAttr'
    DESC 'qualification'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.8
    NAME 'schoolAttr'
    DESC 'school'
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.9
    NAME 'collegeAttr'
    DESC 'college'
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.10
    NAME 'addressAttr'
    DESC 'address'
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.11
    NAME 'zipAttr'
    DESC 'pinCode'
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
olcObjectClasses: ( 1.3.6.1.4.1.88888.1.2.1
    NAME 'userControl'
    DESC 'RFC2798: New Customized Schema'
    SUP organizationalPerson
    STRUCTURAL
    MAY (
        genderAttr $ dobAttr $ languageAttr $ mTongueAttr $ nationalityAttr $ worksAtAttr $ qualificationAttr $ schoolAttr $ collegeAttr $  addressAttr $ zipAttr)
    )

相关内容