Ldap

LDAP 模式對像類多重繼承讓我感到困惑

  • November 11, 2020

cosine我已經在 alpine 3.12.1上設置了 OpenLDAP 2.4.50inetorgpersonnis使用ldapadd. 現在我想添加一個自定義對像類。我添加了一個條目cn=mystuff,cn=schema,cn=config,對像類olcSchemaConfig,它工作得很好。現在我想添加一個新的 objectClass,它可以為我提供某種帶有額外資訊的帳戶類。這個想法很簡單:創建一個繼承自person和的 objectClass posixAccount。她去我的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 中不允許多重繼承,但我找不到任何參考告訴我原因。

長話短說:如何創建一個同時包含 和 的personobjectClass posixAccount?如果不可能,請告訴我確切的原因。

我自己通過https://www.rfc-editor.org/rfc/rfc4512找到了解決方案。我試圖創建的 objectClass 是STRUCTURAL其中一個超類 ( posixAccount) 是AUXILIARY. 按照 RFC,這是不允許的:

第 2.4.2 節規定

“結構對像類不能子類化輔助對像類。”

此外,第 2.4.3 節指出

“輔助對像類不能子類化結構對像類。”

最後,這意味著如果您的超類混合了STRUCTURAL和 ,則對像類的多重繼承永遠不會起作用AUXILIARY。我看不出這是一個很好的理由,但無論如何,這根本不可能通過規範來實現。

引用自:https://serverfault.com/questions/1042101