當現有的物件類別不支援您必須儲存在目錄項目中的所有資訊時,您可以新增物件類別。
有兩種方法可新建物件類別:
建立許多新的物件類別,一一用於需要增加屬性的各個物件類別結構上。
建立單一物件類別,並使其支援您為目錄所建立的所有屬性。您可以將此類型的物件類別定義為 AUXILIARY 物件類別,而加以建立。
假設您的站點必須建立 ExampleDepartmentNumber 與 ExampleEmergencyPhoneNumber 屬性。您可以建立數個允許這些屬性有一些子集的物件類別。您可以建立名為 ExamplePerson 的物件類別,並使其允許 ExampleDepartmentNumber 與 ExampleEmergencyPhoneNumber 屬性。ExamplePerson 的父系將是 inetOrgPerson。接著,您可以建立名為 ExampleOrganization 的物件類別,並使其也允許 ExampleDepartmentNumber 與 ExampleEmergencyPhoneNumber 屬性。ExampleOrganization 的父系將是 organization 物件類別。
新的物件類別會以 LDAP v3 模式顯式,如下顯示:
objectclasses: (1.3.6.1.4.1.42.2.27.999.1.2.3 NAME 'ExamplePerson' DESC 'Example Person Object Class' SUP inetorgPerson STRUCTURAL MAY (ExampleDepartmentNumber $ ExampleEmergencyPhoneNumber) ) objectclasses: (1.3.6.1.4.1.42.2.27.999.1.2.4 NAME 'ExampleOrganization' DESC 'Example Organization Object Class' SUP organization STRUCTURAL MAY (ExampleDepartmentNumber $ ExampleEmergencyPhoneNumber) )
此外,您也可以建立允許上述所有屬性的單一物件類別。接著,您即可對要使用屬性的任何項目使用此物件類別。單一物件類別將如下所示:
objectclasses: (1.3.6.1.4.1.42.2.27.999.1.2.5 NAME 'ExampleEntry' DESC 'Example Auxiliary Object Class' SUP top AUXILIARY MAY (ExampleDepartmentNumber $ ExampleEmergencyPhoneNumber) )
新的 ExampleEntry 物件類別會以 AUXILIARY 標示,表示無論其結構物件類別為何,皆可用於任何項目。
在決定如何實作新的物件類別時,請考量下列事項。
多重 STRUCTURAL 物件類別將會導致需建立及維護更多模式元素。
一般而言,會將元素的數量保持在較小的情況,而不需太多的維護。但若您打算在模式中增加二或三個物件類別,使用單一物件類別可能會較為容易些。
多重 STRUCTURAL 物件類別在資料設計上的要求較為慎重與嚴苛。
嚴苛的資料設計將迫使您考量在物件類別結構中納入資料各個部分。這項限制可能確實有幫助,但也可能綁手綁腳。
單一 AUXILIARY 物件類別可在您需要將資料放置到多種類型的物件類別結構上時,簡化所需的資料設計。
例如,假設您在人員與群組項目上皆需要 preferredOS。您可以僅建立單一物件類別以允許此屬性。
請設計與實際物件及群組元素相關,且可形成合理群組的物件類別。
請避免為新的物件類別設定必要屬性。
必要屬性會使您的模式缺乏彈性。當您建立新的物件類別時,請設定允許的屬性,而不要設定必要屬性。
定義新的物件類別後,您必須決定物件類別所允許及要求的屬性,以及此物件類別繼承哪些或哪個物件類別。