Я настроил OpenLDAP 2.4.50 на alpine 3.12.1 и ввел косинус
, inetorgperson
и nis
схемы LDIF для него с использованием ldapadd
. Теперь я хотел добавить собственный класс объекта. Я добавил запись cn = mystuff, cn = schema, cn = config
, objectclass olcSchemaConfig
, которая работала нормально. Теперь я хотел добавить новый объектный класс, который предоставил бы мне какой-то класс учетной записи с дополнительной информацией. Идея проста:создать объектный класс, который наследуется от person
, а также от 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: пользовательский класс ObjectClass имеет несоответствующий SUPerior: "posixAccount"
Я полагаю, множественное наследование не разрешено в LDAP, как я пытаюсь его использовать, но я не смог найти ссылку, объясняющую, почему .
Короче говоря: как я могу создать объектный класс, состоящий из person
и posixAccount
? А если это невозможно, скажите, пожалуйста, почему.
찾았습니다. https://tools.ietf.org/html/rfc4512 을 통해 직접 읽는 솔루션입니다. 생성하려는 objectClass는 STRUCTURAL
이고 수퍼 클래스 ( posixAccount
) 중 하나는 AUXILIARY
입니다. RFC에 따르면 이것은 허용되지 않습니다.
섹션 2.4.2 상태
"구조적 객체 클래스는 보조 객체 클래스를 하위 클래스화할 수 없습니다."
그리고 섹션 2.4.3 은 상태
"보조 객체 클래스는 구조적 객체 클래스를 하위 클래스로 만들 수 없습니다."
결국 이것은 STRUCTURAL
및 AUXILIARY [와 관련하여 수퍼 클래스가 혼합 된 경우 객체 클래스의 다중 상속이 작동하지 않음을 의미합니다. 1145596]. 이에 대한 좋은 이유는 알 수 없지만 사양에 따라 불가능합니다.
이 제한에 직면 한 것 같습니다. https://tools.ietf.org/html/rfc4512#section-2.4.2
”객체 또는 별칭 항목은 가장 종속적 인 객체 클래스로 단일 구조적 객체 클래스를 갖는 정확히 하나의 구조적 객체 클래스 수퍼 클래스 체인을 특징으로합니다.”