OpenLDAP: 구성표에 olcObjectClasses 추가

OpenLDAP: 구성표에 olcObjectClasses 추가

cn=conf를 통해 OpenLDAP에 구성표를 추가했습니다. 이 체계는 WSO2 Identity Server에서 가져왔지만 cn=conf 및 OpenLDAP에 적용하도록 수정되었습니다.

구성표가 오류 없이 로드되었지만 작동하지 않습니다. 로드된 모든 구성표에 대해 cn=schemes,cn=conf를 쿼리한 후 내 구성표에 구성표의 이름과 내용을 정의하는 olcObjectClasses 문이 없다는 것을 발견했습니다. 이것은 내가 로드한(오류 없이) LDIF 파일의 일부였지만 어떤 이유로 실시간 구성에는 존재하지 않습니다.

이제 사실을 추가하려고 하는데 오류가 발생합니다.

ldapmodify: invalid format (line 5) entry: "cn={4}wso2Person,cn=schema,cn=config"

내가 로드하려는 파일은 다음과 같습니다.

dn: cn={4}wso2Person,cn=schema,cn=config
changetype: modify
add: olcObjectClasses
olcObjectClasses: ( 0.3.6.1.4.1.37505.1.1
NAME 'wso2Person'
DESC 'wso2Person'
SUP inetOrgPerson
STRUCTURAL
MAY ( gender $ country $ nickName $ timeZone $ dateOfBirth $ role $ im $ url $ otherPhone $ privatePersonalIdentifier $ profileconfiguration $ prefferedLanguage)
)

쿼리할 때: ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config 내 구성표에 대한 섹션은 다음과 같습니다.

# {4}wso2Person, schema, config
dn: cn={4}wso2Person,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: {4}wso2Person
olcAttributeTypes: {0}( 1.3.6.1.4.1.37505.1.2       NAME 'gender'     EQUALI
TY caseIgnoreMatch       SUBSTR caseIgnoreSubstringsMatch       SYNTAX 
1.3.6.
1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {1}( 1.3.6.1.4.1.37505.1.3       NAME 'country'       
EQUALITY caseIgnoreMatch       SUBSTR caseIgnoreSubstringsMatch       SYNTAX 
1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {2}( 1.3.6.1.4.1.37505.1.4       NAME 'nickName'     EQUA
LITY caseIgnoreMatch       SUBSTR caseIgnoreSubstringsMatch       SYNTAX 
1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {3}( 1.3.6.1.4.1.37505.1.5       NAME 'timeZone'       
EQUALITY caseIgnoreMatch       SUBSTR caseIgnoreSubstringsMatch       SYNTAX 
1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {4}( 1.3.6.1.4.1.37505.1.6       NAME 'dateOfBirth'       
EQUALITY caseIgnoreMatch       SUBSTR caseIgnoreSubstringsMatch       SYNTAX 
1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {5}( 1.3.6.1.4.1.37505.1.7       NAME 'role'    EQUALITY 
caseIgnoreMatch       SUBSTR caseIgnoreSubstringsMatch       SYNTAX 1.3.6.1.
4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {6}( 1.3.6.1.4.1.37505.1.8       NAME 'im'       EQUALITY 
caseIgnoreMatch       SUBSTR caseIgnoreSubstringsMatch       SYNTAX 
1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {7}( 1.3.6.1.4.1.37505.1.9       NAME 'url'      EQUALITY
caseIgnoreMatch       SUBSTR caseIgnoreSubstringsMatch       SYNTAX 
1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {8}( 1.3.6.1.4.1.37505.1.10       NAME 'otherPhone'   
EQUALITY caseIgnoreMatch       SUBSTR caseIgnoreSubstringsMatch       SYNTAX 
1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {9}( 1.3.6.1.4.1.37505.1.11       NAME 
'privatePersonalIdentifier'       EQUALITY caseIgnoreMatch       SUBSTR 
caseIgnoreSubstringsMatch  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {10}( 1.3.6.1.4.1.37505.1.12       NAME 
'profileconfiguration'       EQUALITY caseIgnoreMatch       SUBSTR 
caseIgnoreSubstringsMatch  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )
olcAttributeTypes: {11}( 1.3.6.1.4.1.37505.1.13       NAME 
'prefferedLanguage'          EQUALITY caseIgnoreMatch       SUBSTR 
caseIgnoreSubstringsMatch  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )

내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변1

나는 그것을 해결했다.

olcObjectClasses: 이후의 모든 내용은 한 줄로 읽어야 하지만 그렇지 않았습니다. 이는 ldif 파일에서 행 간격을 지정하는 방식 때문이었습니다. 아래는 작업 파일입니다. (줄 앞에 공백을 추가하면 이전 줄의 연속임을 나타냅니다.)

dn: cn={4}wso2Person,cn=schema,cn=config
changetype: modify
add: olcObjectClasses
olcObjectClasses: ( 0.3.6.1.4.1.37505.1.1
  NAME 'wso2Person'
  DESC 'wso2Person'
  SUP inetOrgPerson
  STRUCTURAL
  MAY ( gender $ country $ nickName $ timeZone $ dateOfBirth $ role $ im $ 
  url $ otherPhone $ privatePersonalIdentifier $ profileconfiguration $ 
  prefferedLanguage))

나머지 구성표를 추가할 때 읽히지 않은 이유는 부적절한 위치에 추가 줄 바꿈이 있었기 때문입니다. olcObjectClasses 추가와 나머지 LDIF 콘텐츠 사이에 빈 줄이 있었습니다. 아래에서 확인하세요.

[..]
olcAttributeTypes: {11}( 1.3.6.1.4.1.37505.1.13       NAME 
'prefferedLanguage'          EQUALITY caseIgnoreMatch       SUBSTR 
caseIgnoreSubstringsMatch  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )

olcObjectClasses: ( 0.3.6.1.4.1.37505.1.1
[...]

관련 정보