Ldap
LDAP 模式對像類多重繼承讓我感到困惑
cosine
我已經在 alpine 3.12.1上設置了 OpenLDAP 2.4.50inetorgperson
並nis
使用ldapadd
. 現在我想添加一個自定義對像類。我添加了一個條目cn=mystuff,cn=schema,cn=config
,對像類olcSchemaConfig
,它工作得很好。現在我想添加一個新的 objectClass,它可以為我提供某種帶有額外資訊的帳戶類。這個想法很簡單:創建一個繼承自person
和的 objectClassposixAccount
。她去我的LDIF…dn: cn={4}mystuff,cn=schema,cn=config changetype: modify add: olcObjectClasses olcObjectClasses: ( 1.3.6.1.4.1.999999.1.2.3 NAME 'myAccount' DESC 'A full acc ount as I want it.' SUP ( person $ posixAccount ) STRUCTURAL )
問題是 OpenLDAP 不允許我這樣做。它指出
olcObjectClasses: user-defined ObjectClass has inappropriate SUPerior: "posixAccount"
我想我嘗試使用它的方式在 LDAP 中不允許多重繼承,但我找不到任何參考告訴我原因。
長話短說:如何創建一個同時包含 和 的
person
objectClassposixAccount
?如果不可能,請告訴我確切的原因。
我自己通過https://www.rfc-editor.org/rfc/rfc4512找到了解決方案。我試圖創建的 objectClass 是
STRUCTURAL
其中一個超類 (posixAccount
) 是AUXILIARY
. 按照 RFC,這是不允許的:“結構對像類不能子類化輔助對像類。”
此外,第 2.4.3 節指出
“輔助對像類不能子類化結構對像類。”
最後,這意味著如果您的超類混合了
STRUCTURAL
和 ,則對像類的多重繼承永遠不會起作用AUXILIARY
。我看不出這是一個很好的理由,但無論如何,這根本不可能通過規範來實現。