LDAP

LDAP 용어 정리

hwanguu 2024. 10. 5. 17:10

예제 트리로 보는 용어 정리

 

dc=company,dc=com
├── o=ACompany

       ├── ou=Enter
       │       ├── ou=People
       │       │         ├── cn=Ava
       │       │         │         ├── uid: ava.enter
│       │       │         │         ├── objectClass: inetOrgPerson
       │       │         │         ├──  objectClass: organizationalPerson
       │       │         │         ├──  sn: Smith
       │       │         │         ├──  mail: ava.smith@company.com
       │       │         │         ├──  telephoneNumber: +1 234 567 8901
       │       │         │         ├──  title: Manager
       │       │         │         ├──  userPassword: {SHA}abc123def456
       │       │         │         ──  description: Team lead for Enter department

       │       │         ├── cn=Mia
       │       │         │         ├──  uid: mia.enter
       │       │         │         ├──  objectClass: inetOrgPerson
       │       │         │         ├──  objectClass: organizationalPerson
       │       │         │         ├──  sn: Johnson
       │       │         │         ├──  mail: mia.johnson@company.com
       │       │         │         ├──  title: Developer
       │       │         │         ├──  userPassword: {SHA}xyz789ghi012
       │       │         │         ├──  description: Software developer in Enter department
       │       │         │         ──  telephoneNumber: +1 234 567 8902

       │       │         ──   cn=Zoe
       │       │                     ├──   uid: zoe.enter
       │       │                     ├──   objectClass: inetOrgPerson
       │       │                     ├──   objectClass: organizationalPerson
       │       │                     ├──   sn: Brown
       │       │                     ├──   mail: zoe.brown@company.com
       │       │                     ├──   title: Designer
       │       │                     ├──   userPassword: {SHA}mno456pqr789
       │       │                     ├──   description: UX/UI Designer for Enter department
       │       │                     ──   telephoneNumber: +1 234 567 8903

│              └── ou=Groups
│                        ├── cn=Admins
                        ├── cn=Users
                        └── cn=ContractWorker
        ──  ou=Bank
                  ├──  ou=People
                  │          ├──  cn=Lily
                  │          │         ├──  uid: lily.bank
                  │          │         ├──   objectClass: inetOrgPerson
                  │          │         ├──   objectClass: organizationalPerson
                  │          │         ├──   sn: Taylor
                  │          │         ├──   mail: lily.taylor@company.com
                  │          │         ├──   title: Analyst
                  │          │         ├──   userPassword: {SHA}ghi456jkl123
                  │          │         ├──   description: Financial analyst in Bank department
                  │          │         ──   telephoneNumber: +1 345 678 9012

                  │          ├──  cn=Emma
                  │          │         ├──   uid: emma.bank
                  │          │         ├──   objectClass: inetOrgPerson
                  │          │         ├──   objectClass: organizationalPerson
                  │          │         ├──   sn: Lee
                  │          │         ├──   mail: emma.lee@company.com
                  │          │         ├──   title: Accountant
                  │          │         ├──   userPassword: {SHA}rst123uvw456
                  │          │         ├──   description: Accountant in Bank department
                  │          │         ──   telephoneNumber: +1 345 678 9013

                  │          ──  cn=Nora
                  │                     ├──   uid: nora.bank
                  │                     ├──   objectClass: inetOrgPerson
                  │                     ├──   objectClass: organizationalPerson
                  │                     ├──   sn: Wilson
                  │                     ├──   mail: nora.wilson@company.com
                  │                     ├──   title: Clerk
                  │                     ├──   userPassword: {SHA}xyz123abc456
                  │                     ├──   description: Clerk in Bank department
                  │                     ──   telephoneNumber: +1 345 678 9014

│                  └──  ou=Groups
│                             ├──  cn=Admins
│                             ├──   cn=Users
│                             ├──   cn=Outsourcing
│                             ──   cn=ContractWorker
── o=BCompany

         ├── ou=Map
         │         ├──  ou=People
         │         │          ├──  cn=Leah
         │         │          │         ├──  uid: leah.map
         │         │          │         ├──   objectClass: inetOrgPerson
         │         │          │         ├──   objectClass: organizationalPerson
         │         │          │         ├──   sn: Parker
         │         │          │         ├──   mail: leah.parker@company.com
         │         │          │         ├──   title: Manager
         │         │          │         ├──   userPassword: {SHA}abc456ghi789
         │         │          │         ├──   description: Manager of Map department
         │         │          │         ──   telephoneNumber: +1 456 789 0123

         │         │          ├──   cn=June 

         │         │          │         ├──   uid: june.map
         │         │          │         ├──   objectClass: inetOrgPerson
         │         │          │         ├──   objectClass: organizationalPerson
         │         │          │         ├──   sn: Wright
         │         │          │         ├──   mail: june.wright@company.com
         │         │          │         ├──   title: Engineer
         │         │          │         ├──   userPassword: {SHA}ghi012mno456
         │         │          │         ├──   description: Software engineer in Map department
         │         │          │         ──   telephoneNumber: +1 456 789 0124

         │         │          ──   cn=Ella
         │         │                     ├──    uid: ella.map
         │         │                     ├──    objectClass: inetOrgPerson
         │         │                     ├──    objectClass: organizationalPerson
         │         │                     ├──    sn: Scott
         │         │                     ├──    mail: ella.scott@company.com
         │         │                     ├──    title: Analyst
         │         │                     ├──    userPassword: {SHA}uvw123rst789
         │         │                     ├──    description: Data analyst in Map department
         │         │                     ──    telephoneNumber: +1 456 789 0125

                  └──   ou=Groups
                               ├──  cn=Admins
                               ├── cn=Users
                               ├── cn=Outsourcing
                               └── cn=ContractWorker
         └── ou=Music
                    ├──   ou=People
                    │          ├──   cn=Kate
                    │          │          ├── uid: kate.music
                    │          │          ├── objectClass: inetOrgPerson
                    │          │          ├── objectClass: organizationalPerson
                    │          │          ├── sn: Morris
                    │          │          ├── mail: kate.morris@company.com
                    │          │          ├── title: Singer
                    │          │          ├── userPassword: {SHA}abc789xyz456
                    │          │          ├── description: Lead singer in Music department
                    │          │          ── telephoneNumber: +1 567 890 1234

                    │          ├──    cn=Jade
                    │          │          ├── uid: jade.music
                    │          │          ├── objectClass: inetOrgPerson
                    │          │          ├── objectClass: organizationalPerson
                    │          │          ├── sn: Adams
                    │          │          ├── mail: jade.adams@company.com
                    │          │          ├── title: Composer
                    │          │          ├── userPassword: {SHA}def123ghi456
                    │          │          ├── description: Music composer in Music department
                    │          │          ── telephoneNumber: +1 567 890 1235

                    │          ──    cn=Ivy
                    │                      ├── uid: ivy.music
                    │                      ├── objectClass: inetOrgPerson
                    │                      ├── objectClass: organizationalPerson
                    │                      ├── sn: Carter
                    │                      ├── mail: ivy.carter@company.com
                    │                      ├── title: Musician
                    │                      ├── userPassword: {SHA}jkl456mno123
                    │                      ├── description: Instrumental musician in Music department
                    │                      ── telephoneNumber: +1 567 890 1236

                    └── ou=Groups
                              ├── cn=Admins
                              ├── cn=Users
                              └── cn=ContractWorker

 

1. DN (Distinguished Name)

  • 정의: DN은 LDAP 디렉터리에서 엔트리를 고유하게 식별하는 전체 경로입니다.
  • 예시: dn: cn=Ava,o=ACompany,ou=People,ou=Enter,dc=company,dc=com
    • 위에서 cn=Ava는 최하위 엔트리를 나타내며, ou=People과 ou=Enter는 더 상위 조직 단위를 나타냅니다. dc=company,dc=com은 도메인 컴포넌트입니다.
    • DN은 엔트리의 전체 경로를 포함하며, LDAP에서 이 엔트리를 고유하게 구분하는 역할을 합니다.

2. RDN (Relative Distinguished Name)

  • 정의: RDN해당 엔트리의 상위 노드 안에서 고유한 이름입니다. DN의 일부로, 특정 위치에서 엔트리를 구별하는 역할을 합니다.
  • 예시: cn=Ava는 ou=People 아래에서의 RDN입니다.
    • ou=People,ou=Enter,o=ACompany,dc=company,dc=com이라는 조직 단위 안에서 RDN인 cn=Ava는 유일한 엔트리입니다

3. O (Organization)

  • 정의: o는 LDAP 디렉터리에서 조직 (organization)을 나타내는 속성입니다. 이 속성은 회사, 단체, 기관 등의 전체 조직을 표현할 때 사용됩니다. o 속성은 organization이라는 objectClass에 의해 정의되며, 주로 회사 이름이나 기관 이름을 저장하는 데 사용됩니다.

4. OU (Organizational Unit)

  • 정의: OU조직 단위를 나타내며, 주로 조직 내에서 특정 부서, 팀, 그룹 등을 나타냅니다.
  • 예시:
    • ou=Enter, ou=People, ou=Groups
    • ou=Enter는 조직 전체의 하나의 부서를 나타내며, ou=People은 그 부서의 사용자 그룹을 의미합니다.
o와 ou의 차이
o (Organization Name): 전체 조직의 이름을 나타냅니다. 예를 들어, o=ExampleCompany는 회사 전체를 의미합니다.
ou (Organizational Unit Name): 조직 내의 특정 단위를 나타냅니다. 예를 들어, ou=Enter는 ExampleCompany 내의 Enter라는 부서를 의미합니다.
즉, o는 조직 전체를 정의하는 데 사용되고, ou는 조직의 세부적인 단위(부서, 팀 등)를 정의하는 데 사용됩니다.

5. CN (Common Name)

  • 정의: CN공통 이름을 나타내며, LDAP 엔트리에서 사용자의 이름이나 그룹의 이름으로 사용됩니다.
    CN은 대개 사용자의 이름 또는 엔트리의 일반적인 이름을 표현하는 데 사용되며, 디렉터리 내에서 고유성을 보장하기 위한 중요한 속성입니다. 예를 들어 조직 내의 여러 부서가 있을 때, 각 부서 내의 사용자들은 각자의 CN으로 식별됩니다.
  • 예시:
    • cn=Ava, cn=Admins
    • cn=Ava는 Ava라는 사용자를 나타내며, cn=Admins는 관리자 그룹을 나타냅니다.

6. DC (Domain Component)

  • 정의: DC는 도메인 구성 요소로, 디렉터리 트리의 최상위에서 도메인 이름을 정의합니다.
  • 예시: dc=company,dc=com
    • 이는 LDAP 디렉터리의 최상위 노드로 도메인 이름 company.com을 나타냅니다.

왜 DC를 사용하는가?

  1. 도메인과의 연계성:
    • LDAP은 네트워크 내에서 디렉터리 서비스를 제공하기 위해 사용되며, 도메인 기반 네트워크와 잘 맞는 구조를 가집니다. DC를 사용하여 인터넷 도메인과 LDAP 디렉터리 구조를 쉽게 연결할 수 있습니다.
    • 예를 들어, example.com이라는 도메인을 LDAP 디렉터리에 대응시킬 때 dc=example,dc=com과 같은 형태로 사용하여 도메인과 디렉터리 구조의 일관성을 유지할 수 있습니다.
  2. 계층적 구조 표현:
    • DC를 사용함으로써 디렉터리 구조가 도메인 기반으로 잘 표현되며, 최상위 도메인부터 세분화된 부분까지의 구조를 명확하게 나눌 수 있습니다.
    • 도메인을 분리된 형태로 사용하면, 도메인 내 하위 조직이나 부서를 관리할 때 더 직관적인 접근 방식을 제공합니다.
  3. 전역적으로 고유한 네임스페이스:
    • 도메인 이름은 인터넷 상에서 유일합니다. LDAP에서 DC를 사용하여 네임스페이스를 정의하면 전역적으로 고유한 LDAP 디렉터리 이름을 만들 수 있습니다. 이를 통해 조직 내부뿐만 아니라 외부와의 연동에서도 충돌을 방지합니다.

7. UID (User ID)

  • 정의: UID는 사용자의 고유한 ID를 나타내며, 주로 사용자의 로그인 이름으로 사용됩니다.
  • 예시:
    • uid: ava.enter, uid: mia.enter
    • 각 사용자마다 고유한 UID가 있어야 하며, 예를 들어 ava.enter는 사용자인 Ava의 고유한 식별자입니다.

8. Attribute (속성)

  • 정의: 속성은 LDAP 엔트리에서 특정한 정보를 나타내는 데이터 필드입니다. 각 속성은 이름과 값을 가집니다.
  • 예시:
    • sn: Smith, mail: ava.smith@company.com, telephoneNumber: +1 234 567 8901
    • sn은 사용자의 성을 나타내고, mail은 이메일 주소, telephoneNumber는 전화번호입니다.

9. Entry (엔트리)

  • 정의: 엔트리는 LDAP 디렉터리 내에서 특정 객체를 나타내며, 하나 이상의 속성으로 구성됩니다.
  • 예시:
    • 엔트리는 사용자 Ava에 대한 정보를 나타내며, 여러 속성으로 구성되어 있습니다.
dn: cn=Ava,ou=People,ou=Enter,dc=company,dc=com
uid: ava.enter
objectClass: inetOrgPerson
objectClass: organizationalPerson
sn: Smith
mail: ava.smith@company.com
telephoneNumber: +1 234 567 8901
title: Manager
userPassword: {SHA}abc123def456
description: Team lead for Enter department

10. Schema (스키마)

  • 정의: 스키마는 LDAP 디렉터리에서 데이터 구조와 규칙을 정의하는 규칙 세트입니다. 엔트리가 가질 수 있는 속성과 그 속성의 형식을 정의합니다.
  • 예시:
    • objectClass: inetOrgPerson, objectClass: organizationalPerson
    • inetOrgPerson과 organizationalPerson은 각각 특정 속성들(예: sn, mail, uid, title)을 가질 수 있도록 정의된 스키마입니다.

11. Object Class (객체 클래스)

  • 정의: Object Class는 LDAP 엔트리에서 어떤 속성을 가질 수 있는지 정의하는 템플릿입니다.
  • 예시:
    • objectClass: inetOrgPerson, objectClass: organizationalPerson
    • inetOrgPerson은 이메일, 전화번호, 사용자 ID 등을 정의하며, organizationalPerson은 조직과 관련된 정보를 정의합니다.

12. Base DN (기준 DN)

  • 정의: Base DN은 LDAP 디렉터리에서 검색을 시작하는 기준 지점을 의미합니다.
  • 예시:
    • dc=company,dc=com
    • company.com 도메인의 전체 디렉터리를 검색하는 경우 Base DN은 dc=company,dc=com이 됩니다.
    • 특정 부서만 검색하고 싶다면 ou=People,ou=Enter,dc=company,dc=com을 기준 DN으로 사용할 수 있습니다.

다양한 예제와 설명

  1. DN과 RDN:
    • DN: dn: cn=Emma,ou=People,ou=Bank,o=ACompany,dc=company,dc=com
      • 전체 경로로서 이 엔트리를 고유하게 식별합니다.
    • RDN: cn=Emma
      • ou=People 조직 내에서 Emma라는 유일한 엔트리를 식별합니다.
  2. OU와 CN:
    • OU: ou=Groups,ou=Enter,dc=company,dc=com
      • 그룹과 관련된 조직 단위를 나타내며, 관리 용도로 사용됩니다.
    • CN: cn=Admins,ou=Groups,ou=Enter,dc=company,dc=com
      • Admins라는 특정 그룹을 나타냅니다.
  3. Attribute와 Entry:
    • 속성 예: mail: emma.lee@company.com, title: Accountant
      • 이메일과 직위를 나타내는 속성입니다.
    • 엔트리 예: cn=Emma에 대한 모든 정보를 포함하는 데이터 집합입니다.
  4. Object Class와 스키마:
    • objectClass: inetOrgPerson
      • 이 objectClass는 엔트리에 이메일, 전화번호와 같은 인터넷 관련 속성을 포함할 수 있도록 허용합니다.
    • 스키마: inetOrgPerson 스키마는 엔트리가 가질 수 있는 여러 속성(예: uid, mail, userPassword)을 정의하고 있습니다.

요약

  • DNRDN은 엔트리의 위치와 식별을 나타냅니다.
  • OU는 조직 단위를, CN은 개별 엔트리를 나타냅니다.
  • UID는 고유한 사용자 식별자입니다.
  • Attribute는 엔트리의 속성이며, Entry는 속성들의 집합체입니다.
  • SchemaObject Class는 엔트리가 가질 수 있는 속성을 정의하는 규칙이며, Base DN은 검색의 시작 지점입니다.

+)

Filter

디렉터리에서 데이터를 검색할 때 사용하는 조건입니다. LDAP 쿼리에서 특정 속성의 값에 따라 엔트리를 필터링하는 데 사용됩니다.
예: (cn=John Doe)는 cn이 "John Doe"인 항목을 찾는 필터입니다.

Bind

LDAP 서버와 연결을 설정하고 인증하는 과정입니다. 사용자 인증을 위해 사용자 DN과 비밀번호를 사용하여 서버에 바인딩합니다.

 

Tree

LDAP는 트리 구조를 기반으로 데이터를 조직합니다. 이 트리는 루트로부터 시작하여 여러 가지 계층적인 노드로 구성됩니다. 이 트리 구조에서 각 엔트리는 부모-자식 관계로 연결되어 있습니다.

 

'LDAP' 카테고리의 다른 글

LDAP Docker로 실행하기  (3) 2024.10.06
LDAP  (3) 2024.10.05
LDAP 필터  (0) 2024.10.05
LDAP 검색 스코프(base, one, subree, children)  (1) 2024.10.05
LDAP에서 주요 objectClass 유형  (1) 2024.10.05