시스템(Windows)

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

forward error correction Circle 2024. 5. 28. 08:30
반응형


Ⅰ. 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): 검색 작업의 완료 상태를 나타냅니다.

반응형