SYSTEM

LDAP이란 무엇인가

마띠(쥔장) 2021. 3. 18. 18:00

LDAP

LDAP(Lightweight Directory Access Protocol)은 네트워크 상에서 조직이나, 조직 내 파일/개인정보/디바이스 정보 등을 찾아볼 수 있도록 하는 프로토콜이다. 이름에서 알 수 있듯이, LDAP은 디렉터리 서비스의 표준인 X.500DAP를 기반으로한 Lightweight 버전이다.

구조

결국 LDAP도 DAP과 같이 '디렉터리 서비스'를 제공하는 것이 주요 기능이다. 디렉터리 안에는 저장/공유할 무엇이든 넣을 수 있고 삽입/수정보다는 검색에 특화된 '계층적 구조'로 이루어져있다.

이 트리 구조에서의 각 노드를 '엔트리'라고 부른다. LDAP에서 갖는 주요 엔트리들은 다음과 같다.

Entry Name Full Name Description Entry Name Full Name Description
c CountryName 국가명 street StreetAddress 도로 주소
st StateProvinceName 주(도) 명 o OrganizationName 조직(회사) 명
l LocalityName 도시, 특정 지역 단위명 ou OrganizationUnitName 조직 부서명
cn CommonName 일반적인 이름 dc domaincomponent 도메인 네임 요소
sn SurName mail mail E-mail 주소
givenName givenname 이름 telephoneNumber telephoneNumber 전화번호

위의 계층 구조를 보면, 가장 마지막 노드에 mika, sales, security라는 'cn'이 존재한다. 다른 말로, cn=mika는 matiii.com(dc)이라는 도메인의 people이라는 ou에 속한 사용자이다. 각 사용자나 개체는 고유한 'DN(Distinguish Name)'을 갖는데, 이는 끝 노드부터 역순으로 올라간다.

ex. 'cn=security'의 DN = "cn=security,ou=department,dc=matiii,dc=com"

기능

검색에 특화되어 있는 디렉터리 서비스인 LDAP의 기능은 다음과 같다.

  • 컴퓨터 관리, 사용자 인증 등의 정보를 중앙에서 관리할 수 있다.
  • 관리 중인 정보를 읽거나 검색하는 것에 특화되어 있다. 하지만 트랜잭션, 롤백 등의 기능은 존재하지 않아 쓰기에는 적합하지 않다.
  • 수많은 서버의 계정 관리, 접근 제어 등을 중앙에서 관리할 수 있어 보안적 결함 관리에도 효율적이다.

LDAP vs. AD

LDAP의 기능은 AD와 매우 유사하다.

hec-ker.tistory.com/316

 

Active Directory (1) AD는 무엇일까

1. AD의 등장 배경과 AD 조직의 규모가 커질수록 object(시스템 자원)의 개수가 많아지므로 관리는 점점 힘들어진다. 그럼 각 object에 접속하는 사용자들은 한 조직의 공유 자원을 이용할 때 그 자원

hec-ker.tistory.com

그렇다면 LDAP과 AD는 무엇이 다를까?

LDAP:

  • 서버의 정보를 조회하는데 사용되는 디렉터리 서비스 프로토콜
  • 저장된 정보의 업데이트가 잦지 않고 빠른 검색이 필수적일 때 적합
  • 거의 모든 OS 지원

AD:

  • LDAP ver.2와 3, Kerberos 기반 인증, DNS 기반 서비스 등 다양한 프로토콜을 사용한 디렉터리 서비스
  • 정책 할당, SW 배포 및 업데이트 등에 적합
  • 규모에 가리지 않고 소규모 ~ 대규모의 네트워크에 모두 적합하나 Windows 환경에서만 작동

정리하자면, LDAP과 AD는 모두 디렉터리 서비스를 이용할 수 있는 프로그램이며 중앙에서 리소스를 관리할 수 있다. 하지만 LDAP은 '프로토콜'이고 거의 모든 OS에 디렉터리 서비스를 지원하지만 검색에 특화되어 있고 DB처럼 쓰기 동작에는 적합하지 않다. 반면 AD는 디렉터리 서비스 공급자이며 LDAP을 포함한 여러 프로토콜을 지원한다. 검색뿐만 아니라 쓰기에도 적합하며 네트워크 규모에 관계없이 많이 사용되지만 Windows 환경만 지원한다.

OpenLDAP

모든 OS에서 지원하나 리눅스 기반의 'OpenLDAP'이 가장 많이 쓰이는 듯 하다.

 

OpenLDAP, Main Page

The suite includes: slapd - stand-alone LDAP daemon (server) libraries implementing the LDAP protocol, and utilities, tools, and sample clients. Also available from the OpenLDAP Project: Fortress - Role-based identity access management Java SDK JLDAP - LDA

www.openldap.org

해당 홈페이지에 가보면 버전 별 admin 가이드를 매우 상세하게 알려주고 있다.

 

OpenLDAP Software 2.5 Administrator's Guide

 

www.openldap.org

아래 블로그에서 OpenLDAP 설치에 대해 자세하게 다루고 있다.

 

OpenLDAP을 활용한 기반시스템 중앙 인증관리 #1

지금까지 프로젝트 진행하면서서 기반시스템(svn, jenkins, sonarqube, redmine, nexus...)은 개별 시스템 별로 유저를 관리하거나 admin 계정이나 다른 하나의 계정으로만 사용을 해왔었다. 몇명 안되는 개

blog.hkwon.me

 

728x90