openldap에서 자체 속성을 생성하는 중에 문제가 발생했습니다.

openldap에서 자체 속성을 생성하는 중에 문제가 발생했습니다.

내 자신의 속성(예: dateOfExpire - 일반화된 시간)을 생성한 다음 이 속성을 내 ObjectClass(예: 기숙사)에 추가하고 ObjectClass와 함께 이 속성을 기존 스키마 inetorgperson에 추가하는 데 문제가 있습니다.

이것이 내가 inetorgperson.ldif 파일에 추가한 내용입니다.

olcAttributeTypes: ( 2.5.18.1 NAME 'dateOfExpire' DESC 'RFC4512: indicated the date of account expiry' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SINGLE-VALUE USAGE directoryOperation  SUBSTR cas eIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )

이것을 inetorgperson.schema 파일에 추가하십시오:

attributetype ( 2.5.18.1 NAME 'dateOfExpire'
    DESC 'RFC4512: indicated the date of account expiry'
    EQUALITY generalizedTimeMatch
    ORDERING generalizedTimeOrderingMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
    SINGLE-VALUE
    USAGE directoryOperation )

objectclass ( 2.5.6.6.1 NAME 'dormitory'
    DESC 'RFC2256: a person'
    SUP person
    STRUCTURAL
    MUST ( sn $ cn $ dateOfExpire $ name $ uid )
    MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )

그런 다음 다음 명령을 사용하여 이 스키마를 추가합니다.

ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f inetorgperson.ldif

하지만 다음 오류만 발생합니다.

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
additional info: olcAttributeTypes: "2.5.18.1" is operational

답변1

속성을 작동 가능(used)으로 표시했으므로 USAGE directoryOperation오류가 발생합니다.

사용자는 작동 속성을 수정해서는 안 됩니다. 일부 이벤트에 따라 업데이트하려면 OpenLDAP에서 실행되는 코드가 필요합니다.

또한 inetOrgPerson 등과 같은 표준 스키마를 변경하지 않는 것이 좋습니다. 자신만의 스키마를 만들어야 합니다.

답변2

각 속성 유형과 객체 클래스에는 고유한 OID가 할당되어야 합니다.

OID를 재사용하고 있습니다.2.5.18.1표준 속성에 할당됨타임스탬프 생성.

OID도 사용하셨습니다.2.5.6.6.1이는 다른 사람이 OID를 할당할 수 있으므로 사용해서는 안 되는 OID 아크입니다.

또한보십시오:OpenLDAP FAQ: 각 스키마 항목에 OID를 할당해야 합니까?

당신의 객체 클래스기숙사친절하게 대해 STRUCTURAL. 기존 항목에 추가할 수 없습니다. 대신 종류를 사용해 주세요 AUXILIARY.

관련 정보