
여러 가지 이유로 저는 직장에서 사실상의 LDAP 관리자가 되었습니다. 저는 직장에서 그것을 배운 지 1년 정도 되었습니다. 따라서 제가 설명할 때 더 나은 작업 방법을 자유롭게 제안해 보세요.
직원 정보를 저장하는 Novell eDirectory가 있습니다. 주로 Moodle이나 Drupal과 같은 다양한 웹 서비스를 인증하는 데 사용됩니다. 하지만 저는 이를 새로운 직원 디렉터리의 백엔드로도 사용하고 있습니다. 데이터가 이미 복제되고 있는 것보다 더 이상 데이터를 복제하는 데 아무런 의미가 없습니다. 게다가 직원 디렉토리는 LDAP의 목적과 정확히 일치합니다.
각 사무실에 대한 항목을 만든 다음 사무실에 대한 사무실 항목의 DNS를 참조하는 각 사용자에 대한 속성을 설정했습니다. 지금 내가 겪고 있는 문제는 각 사무실마다 고유한 전화번호가 있다는 것입니다. 따라서 사무실이 두 개 이상인 직원(예를 들어 캠퍼스가 두 개 이상인 경우)은 전화번호가 두 개 이상 있습니다. 전화번호는 직원을 따라다니기 때문에 사무실 입구에만 번호를 할당할 수는 없습니다. 그래서 "이 전화번호는 이 사무실 전화번호입니다."라고 말할 수 있는 방법이 필요합니다.
이것이 MySQL 데이터베이스라면 내가 원하는 대로 매핑하는 테이블을 생성할 것입니다.
LDAP에서 사용할 수 있는 유사한 구조가 있습니까? 아니면 동등한 방법입니까?
내가 말하는 내용에 대한 자세한 예를 제공하기 위해 직원 항목의 의사 ldif가 있습니다.
dn: cn=user,ou=staff,dc=college,dc=edu
officedn: cn=DC107,ou=locations,dc=college,dc=edu
officedn: cn=MAIN222,ou=locations,dc=college,dc=edu
phone: 555-555-5555
phone: 111-111-1111
departmentdn: cn=it,ou=departments,ou=groups,dc=college,dc=edu
departmentdn: cn=math,ou=departments,ou=groups,dc=college,dc=edu
title: web systems admin
title: professor of discrete math
그렇다면 나는 어떻게 관련될 것인가:
officedn: cn=DC107,ou=locations,dc=college,dc=edu
에 phone: 555-555-5555
?
아니면 ?officedn: cn=MAIN222,ou=locations,dc=college,dc=edu
phone: 111-111-1111
아니면 ?departmentdn: cn=math,ou=departments,ou=groups,dc=college,dc=edu
title: professor of discrete math
등등...
관련이 있는 경우를 대비해 몇 가지 참고 사항:
DN 구문 1.3.6.1.4.1.1466.115.121.1.12를 사용하여 사무실 및 부서 dn에 대한 사용자 정의 속성을 만들었습니다.
부서 항목에는 objectClasses groupOfNames,nestedGroupAux 및 Top이 있습니다.
사무실에는 objectClasses가 있습니다. 상위 캠퍼스 항목인 ndsLoginProperties, organizationPerson, Person 및 Top에 대한 사용자 정의 dn 참조가 포함된 사용자 정의 objectClass입니다.
사용자 항목은 사무실과 동일하며 posixAccount도 포함됩니다.
제가 제공해야 할 다른 정보가 있나요?
다음 문제에 대한 댓글이 너무 짧은 문제를 해결하려면 편집하세요.
다음에 설명된 대로 메타 정보가 포함된 다른 항목을 만드는 경우https://serverfault.com/a/500129/99647전화번호별, 직위별로 메타 항목을 만들어야 합니다.
dn: cn=MAIN222,cn=user,ou=staff,dc=college,dc=edu officedn: cn=MAIN222,ou=locations,dc=college,dc=edu phone: 111-111-1111 departmentdn: cn=math,ou=departments,ou=groups,dc=college,dc=edu title: professor of discrete math departmentdn: cn=it,ou=departments,ou=groups,dc=college,dc=edu title: web systems admin
웹 시스템 관리자가 수학을 사용하지 않고 수학을 사용한다는 사실을 컴퓨터가 알아낼 방법이 없기 때문에 작동하지 않을 것입니다.
질문을 게시하기 전에 제가 생각한 방법은 모든 메타데이터에 대한 ou를 만드는 것과 같습니다. ou=metadata,dc=college,dc=edu
그런 다음 각 사용자에 대한 ou: ou=userid,ou=metadata,dc=college,dc=edu
그런 다음 부서 및 사무실에 연결되는 직위 및 전화번호별로 항목을 만듭니다.
``` dn: cn=jobtitle,ou=userid,ou=metadata,dc=college,dc=edu officedn: cn=DC107,ou=locations,dc=college,dc=edu 전화: 555-555-5555
dn: cn=phonenumber,ou=userid,ou=metadata,dc=college,dc=edu officedn: cn=MAIN222,ou=locations,dc=college,dc=edu 전화: 111-111-1111 ```
나는 내가 원하는 것을 달성하는 것보다 더 깨끗한 방법이 있기를 바랐습니다.
답변1
직위별로 직위와 관련 정보를 동일한 개체에 포함하는 개체를 생성하면 어떨까요?
그래서:
dn: cn=DC107,cn=user,ou=staff,dc=college,dc=edu
officedn: cn=DC107,ou=locations,dc=college,dc=edu
phone: 555-555-5555
departmentdn: cn=it,ou=departments,ou=groups,dc=college,dc=edu
title: web systems admin
dn: cn=MAIN222,cn=user,ou=staff,dc=college,dc=edu
officedn: cn=MAIN222,ou=locations,dc=college,dc=edu
phone: 111-111-1111
departmentdn: cn=math,ou=departments,ou=groups,dc=college,dc=edu
title: professor of discrete math
이렇게 하면 하나의 개체의 단일 위치와 관련된 모든 필드를 유지하고 사용자의 개체가 컨테이너가 됩니다. 그러면 임의의 수의 위치를 매우 간단하게 검색하고 처리할 수 있습니다.