LDAP
LDAP(Lightweight Directory Access Protocol)은 네트워크 상에서 조직이나, 조직 내 파일/개인정보/디바이스 정보 등을 찾아볼 수 있도록 하는 프로토콜이다. 이름에서 알 수 있듯이, LDAP은 디렉터리 서비스의 표준인 X.500의 DAP를 기반으로한 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 | 성 | 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와 매우 유사하다.
그렇다면 LDAP과 AD는 무엇이 다를까?
LDAP:
- 서버의 정보를 조회하는데 사용되는 디렉터리 서비스 프로토콜
- 저장된 정보의 업데이트가 잦지 않고 빠른 검색이 필수적일 때 적합
- 거의 모든 OS 지원
AD:
- LDAP ver.2와 3, Kerberos 기반 인증, DNS 기반 서비스 등 다양한 프로토콜을 사용한 디렉터리 서비스
- 정책 할당, SW 배포 및 업데이트 등에 적합
- 규모에 가리지 않고 소규모 ~ 대규모의 네트워크에 모두 적합하나 Windows 환경에서만 작동
정리하자면, LDAP과 AD는 모두 디렉터리 서비스를 이용할 수 있는 프로그램이며 중앙에서 리소스를 관리할 수 있다. 하지만 LDAP은 '프로토콜'이고 거의 모든 OS에 디렉터리 서비스를 지원하지만 검색에 특화되어 있고 DB처럼 쓰기 동작에는 적합하지 않다. 반면 AD는 디렉터리 서비스 공급자이며 LDAP을 포함한 여러 프로토콜을 지원한다. 검색뿐만 아니라 쓰기에도 적합하며 네트워크 규모에 관계없이 많이 사용되지만 Windows 환경만 지원한다.
OpenLDAP
모든 OS에서 지원하나 리눅스 기반의 'OpenLDAP'이 가장 많이 쓰이는 듯 하다.
해당 홈페이지에 가보면 버전 별 admin 가이드를 매우 상세하게 알려주고 있다.
아래 블로그에서 OpenLDAP 설치에 대해 자세하게 다루고 있다.
'SYSTEM' 카테고리의 다른 글
Service와 Daemon의 차이 (0) | 2021.03.25 |
---|---|
bash (3) 간단한 계산기 스크립트 짜기 (1) | 2021.03.11 |
bash (2) 환경 변수 설정 (1) | 2021.03.10 |
bash (1) alias (별칭/단축키) 설정 (0) | 2021.03.10 |
useradd/adduser 안쓰고 직접 파일 수정하여 계정 생성하기 (0) | 2021.03.09 |