2

我有一个与 Active Directory 一起使用的应用程序,它依赖于用户 objectClass 的某些属性。我想添加一个与 OpenLDAP 一起使用的模式,以便我可以在 OpenLDAP 中创建一个使用用户帐户,其代码与今天与 Active Directory 一起使用的代码相同。我创建了以下扩展 inetOrgPerson 的架构,但在尝试验证并将其转换为 ldif 文件时,slaptest 响应

第 11 行属性类型:找不到语法:“1.2.840.113556.1.4.906”

问题行似乎在 Active Directory 使用的大整数语法上。OpenLDAP 仅包含 Integer 语法(1.3.6.1.4.1.1466.115.121.1.27),那么如何为 Large Integer 定义新语法?

attributetype ( 1.2.840.113556.1.4.750 NAME 'groupType'
   SYNTAX '1.3.6.1.4.1.1466.115.121.1.27' SINGLE-VALUE )

attributetype ( 1.3.114.7.4.2.0.33 NAME 'memberOf'
    SYNTAX '1.3.6.1.4.1.1466.115.121.1.26' )

attributetype ( 1.2.840.113556.1.4.656 NAME 'userPrincipalName'
    SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' )

attributetype ( 1.2.840.113556.1.4.52 NAME 'lastLogon'
    SYNTAX '1.2.840.113556.1.4.906' )

attributetype ( 1.2.840.113556.1.4.159 NAME 'accountExpires'
    SYNTAX '1.2.840.113556.1.4.906' )

attributetype ( 1.2.840.113556.1.4.96 NAME 'pwdLastSet'
    SYNTAX '1.2.840.113556.1.4.906' )

attributetype ( 1.2.840.113556.1.4.221 NAME 'sAMAccountName'
    SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' )

attributetype ( 1.2.840.113556.1.4.8 NAME 'userAccountControl'
    SYNTAX '1.3.6.1.4.1.1466.115.121.1.27' )

attributetype ( 1.2.840.113556.1.4.90 NAME 'unicodePwd'
    SYNTAX '1.3.6.1.4.1.1466.115.121.1.40' )

objectclass ( 1.2.840.113556.1.5.9 NAME 'user'
        DESC 'a user'
        SUP inetOrgPerson STRUCTURAL
        MUST ( cn )
        MAY ( userPassword $ memberOf $ userPrincipalName $ distinguishedName $ lastLogon $ accountExpires $ pwdLastSet $ sAMAccountName $ userAccountControl $ unicodePwd ) )

objectclass ( 1.2.840.113556.1.5.8 NAME 'group'
        DESC 'a group of users'
        SUP top STRUCTURAL
        MUST ( groupType $ cn )
        MAY ( member ) )
4

2 回答 2

0

看到这个,支持 LDAP 语法

http://www.zytrax.com/books/ldap/apa/types.html#syntaxes

试试:1.3.6.1.4.1.1466.115.121.1.38

于 2013-10-31T07:56:33.450 回答
0

1.2.840.113556.1.4.906 是Active Directory 使用的大整数语法(也是 Integer8 和其他几个名称),在大多数其他 LDAP 服务器实现中没有等效的语法。

您在 LDIF 中显示的属性(lastLogon、pwdLastSet 和 accountExpires)实际上是与添加值时在大多数其他 LDAP 服务器实现中使用的整数语法不兼容的日期。

大多数 LDAP 服务器实现使用的 GeneralizedTime (1.3.6.1.4.1.1466.115.121.1.24) 与大整数语法中使用的值不同。

但是,您所处的情况将很难解决,就像应用程序专门查询架构或使用“大整数语法”向属性添加值一样。

我们有一些关于大整数日期的文档

我建议您询问您的应用程序供应商是否可以支持其他 LDAP 实现。

于 2020-01-04T11:48:44.793 回答