현재 LDAP 인증을 시스템에 통합하려고 노력하고 있으며 LDAP 그룹을 기반으로 액세스를 제한하고 싶습니다. 이 작업을 수행하는 유일한 방법은 검색 필터를 사용하는 것이므로 검색 필터에서 "memberOf"속성을 사용하는 것이 유일한 옵션이라고 생각합니다. "memberOf"속성은 서버의 "groupOfNames"항목에 대해 새 "member"속성이 작성 될 때마다 서버에서 작성할 수있는 운영 속성이라는 것을 이해하고 있습니다. 내 주요 목표는 기존 "groupOfNames"항목에 "member"속성을 추가하고 제공하는 DN에 일치하는 "memberOf"속성을 추가하는 것입니다.
내가 지금까지 달성 한 것 :
필자는 여전히 LDAP 관리에 익숙하지 않지만 openldap 관리자 안내서에서 찾은 내용을 바탕으로 리버스 그룹 멤버쉽 유지 관리 ( "오버레이 멤버 ")가 내가 원하는 효과를 정확하게 달성 하는 것처럼 보입니다 .
내 서버는 현재 "cn = config"스타일 런타임 구성을 사용하는 openldap 2.4.15의 패키지 설치 (ubuntu에서 분리)를 실행하고 있습니다. 내가 찾은 대부분의 예는 여전히 정적 구성의 이전 "slapd.conf"방법을 참조하며 구성을 새 디렉토리 기반 모델에 적용하기 위해 최선을 다했습니다.
오버레이 멤버를 활성화하기 위해 다음 항목을 추가했습니다.
olcModuleLoad로 모듈 활성화
cn=config/cn\=module\{0\}.ldif
dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof.la
structuralObjectClass: olcModuleList
entryUUID: a410ce98-3fdf-102e-82cf-59ccb6b4d60d
creatorsName: cn=config
createTimestamp: 20090927183056Z
entryCSN: 20091009174548.503911Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009174548Z
데이터베이스에 대한 오버레이를 활성화하고 기본 설정 (groupOfNames, member, memberOf 등)을 사용하도록 허용
cn=config/olcDatabase={1}hdb/olcOverlay\=\{0\}memberof
dn: olcOverlay={0}memberof
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof
structuralObjectClass: olcMemberOf
entryUUID: 6d599084-490c-102e-80f6-f1a5d50be388
creatorsName: cn=admin,cn=config
createTimestamp: 20091009104412Z
olcMemberOfRefInt: TRUE
entryCSN: 20091009173500.139380Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009173500Z
내 현재 결과 :
위의 구성을 사용하면 원하는 수의 "member"항목으로 새로운 "groupOfNames"를 추가 할 수 있으며 관련된 모든 DN이 "memberOf"속성으로 업데이트됩니다. 이것은 내가 기대하는 행동의 일부입니다. 오버레이 멤버로 다음을 수행해야한다고 생각하지만 여전히 다음을 수행하는 방법을 모르며 조언을 기꺼이 환영합니다.
- 기존 "groupOfNames"에 "member"속성을 추가하고 해당 "memberOf"속성을 자동으로 작성하십시오.
- "member"속성을 제거하고 해당 "memberOf"속성 "을 자동으로 제거하십시오.
slapadd
를 할 수있는 올바른 방법 (중지 된 데이터베이스에)?