본문 바로가기
시스템(Windows)

LDAP(Lightweight Directory Access Protocol)에 대해 알아보겠습니다.

by forward error correction Circle 2024. 5. 28.
반응형


Ⅰ. LDAP 이란?

 LDAP(Lightweight Directory Access Protocol)는 디렉터리 서비스에 접근하기 위해 사용되는 프로토콜입니다. 디렉터리 서비스는 네트워크에서 사용자를 찾고 관리하는 데 사용되는 시스템입니다. LDAP는 대규모 조직에서 사용자와 자원의 중앙 관리 및 인증을 필요로 할 때 유용합니다. 다양한 운영 체제와 소프트웨어에서 LDAP를 지원하므로, 이를 활용한 통합 인증 시스템을 구축하고, 사용자 인증, 조직의 계층적 구조 관리, 자원 접근 제어 등에 자주 사용됩니다.

Ⅱ. LDAP 특징

  ⅰ) 경량화된 프로토콜: LDAP는 경량화된 프로토콜로, 네트워크를 통해 빠르고 효율적으로 디렉터리 정보를 조회하고 수정할 수 있습니다.
  ⅱ) 계층적 구조: LDAP 디렉터리는 트리 구조로 되어 있어, 조직의 계층적 구조를 쉽게 표현할 수 있습니다. 루트 노드(root)를 기준으로 하위에 여러 가지 엔트리(entry)가 위치하게 됩니다.
  ⅲ) 표준 기반: LDAP는 표준화된 프로토콜로, 다양한 플랫폼과 소프트웨어에서 지원됩니다. 대표적인 예로는 OpenLDAP, Microsoft Active Directory, Apache Directory 등이 있습니다.

Ⅲ. LDAP 구성요소

  ⅰ) DN(Distinguished Name): LDAP 디렉터리 내의 각 엔트리의 고유한 이름입니다. 예를 들어, cn=John Doe,ou=Users,dc=example,dc=com과 같이 구성될 수 있습니다.
  ⅱ) 엔트리(Entry): LDAP 디렉터리의 기본 단위로, 여러 개의 속성(attribute)을 가질 수 있습니다. 각 엔트리는 DN으로 식별됩니다.
  ⅲ) 속성(Attribute): 엔트리 내의 데이터를 표현하며, 이름과 값으로 구성됩니다. 예를 들어, cn=John Doe에서 cn은 속성 이름, John Doe는 속성 값입니다.
  ⅳ) 스키마(Schema): LDAP 디렉터리에 저장될 수 있는 속성과 엔트리의 구조를 정의합니다. 이는 데이터의 일관성을 유지하는 데 중요합니다.

Ⅳ. LDAP의 기본 작업

 ⅰ) 바인드(Bind): 클라이언트가 LDAP 서버에 인증을 요청하는 과정입니다.
  ⅱ) 검색(Search): 디렉터리에서 특정 기준에 맞는 엔트리를 검색하는 작업입니다.
  ⅲ) 비교(Compare): 특정 엔트리의 속성 값을 비교하는 작업입니다.
  ⅳ) 추가(Add): 새로운 엔트리를 디렉터리에 추가하는 작업입니다.
  ⅴ) 삭제(Delete): 기존 엔트리를 디렉터리에서 삭제하는 작업입니다.
  ⅵ) 수정(Modify): 기존 엔트리의 속성을 수정하는 작업입니다

 

Ⅴ. LDAP 통신의 주요 요소

  ⅰ) LDAP 클라이언트: 디렉터리 서비스에 접근하려는 애플리케이션이나 사용자입니다.
  ⅱ) LDAP 서버: 디렉터리 데이터를 저장하고 관리하며, 클라이언트의 요청을 처리합니다.
  ⅲ) 프로토콜: LDAP는 TCP/IP를 기반으로 하며, 기본 포트는 389번을 사용합니다. 보안이 강화된 LDAPS(LDAP over SSL/TLS)는 636번 포트를 사용합니다.

 

Ⅵ. LDAP 통신 순서

LDAP 통신은 이와 같은 구조를 통해 효율적으로 디렉터리 서비스를 관리하고 사용자와 시스템 간의 인증 및 권한 부여를 처리합니다. 보안을 강화하기 위해 TLS/SSL, SASL 등의 메커니즘을 사용하는 것이 일반적입니다.

 

  ⅰ) 연결(Connect) : 클라이언트가 LDAP 서버에 연결을 설정합니다.

        이 연결은 주로 TCP를 사용하며, 보안이 필요한 경우 TLS를 통해 암호화됩니다.
  ⅱ) 바인드(Bind) : 클라이언트가 서버에 인증을 요청합니다. 바인드는 세 가지 형태가 있습니다:
     1) 익명 바인드(Anonymous Bind): 인증 정보 없이 연결을 설정합니다.
     2)  단순 바인드(Simple Bind): 사용자 DN(Distinguished Name)과 비밀번호를 사용하여 인증합니다.
     3)  SASL(Simple Authentication and Security Layer) 바인드: Kerberos 등과 같은 외부 인증 메커니즘을 사용합니다.
  ⅲ) 요청(Request): 클라이언트가 서버에 특정 작업을 요청합니다. 주요 작업 유형은 다음과 같습니다:
     1)  검색(Search): 특정 기준에 맞는 엔트리를 검색합니다.
     2)  비교(Compare): 특정 엔트리의 속성 값을 비교합니다.
     3)  추가(Add): 새로운 엔트리를 디렉터리에 추가합니다.
     4)  삭제(Delete): 기존 엔트리를 삭제합니다.
     5)  수정(Modify): 기존 엔트리의 속성을 수정합니다.
     6)  수정 DN(Modify DN): 엔트리의 DN을 변경합니다.
  ⅳ) 응답(Response): 서버가 클라이언트의 요청에 대해 응답합니다. 응답은 요청의 성공 여부와 요청한 데이터(예: 검색 결과)를 포함합니다.
  ⅴ) 연결 해제(Unbind/Disconnect): 작업이 완료되면 클라이언트는 연결을 종료합니다. 이는 Unbind 요청을 통해 이루어

 

Ⅶ. LDAP 보안 메커니즘

  ⅰ)  TLS/SSL: LDAP 통신을 암호화하여 데이터의 기밀성과 무결성을 보호합니다. LDAPS를 사용하면 기본 LDAP 포트(389) 대신 636 포트를 사용하여 보안 연결을 설정합니다.
  ⅱ)  SASL: 다양한 인증 메커니즘을 지원하는 프레임워크입니다. Kerberos와 같은 강력한 인증 방식을 사용할 수 있습니다.

. LDAP 메시지 형식

LDAP 통신에서 메시지는 ASN.1(추상 구문 표기법) 형식으로 인코딩되며, BER(기본 인코딩 규칙)을 사용하여 전송됩니다. 각 메시지는 다음과 같은 필드를 포함합니다:

  ⅰ)  메시지 ID: 요청과 응답을 매칭하기 위한 식별자입니다.

  ⅱ)  프로토콜 연산: 요청의 유형을 나타냅니다(예: 바인드, 검색, 수정 등).

  ⅲ) 제어(Control): 선택적으로 메시지에 추가되는 확장 정보입니다.

Ⅸ. LDPA 검색 요청과 응답

  ⅰ) 검색 요청(Search Request):

     1) 베이스 DN(Base DN): 검색을 시작할 기준 지점입니다.

     2) 검색 범위(Search Scope): 검색할 범위를 지정합니다(베이스 객체, 단일 레벨, 하위 트리)

     3) 필터(Filter): 검색할 엔트리의 조건을 정의합니다.

     4) 속성 리스트(Attribute List): 반환할 속성을 지정합니다.

  ⅱ) 검색 응답(Search Response):

     1) 검색 결과 엔트리(Search Result Entry): 검색 조건에 맞는 엔트리 목록입니다.

     2) 검색 결과 완료(Search Result Done): 검색 작업의 완료 상태를 나타냅니다.

반응형