서론
많은 기업에서 인증을 위해 AD(Active Directory)를 사용하는 것으로 알고 있다.
지금 근무 중인 회사도 AD를 사용해서 한 번은 정리해야겠다고 생각만 하고 있었는데
Springboot-LDAP 연동 개발 중 문제가 있어서 해결방안을 찾는 겸 정리를 해보려고 한다.
Active Directory(AD)?
전화번호부의 개념(그룹 내 연락처 정보에 액세스 하기 위한 디렉토리)
AD는 Microsoft가 Windows 전용으로 개발한 디렉토리 서비스 제품으로 공유 네트워크상의 Object(데스크탑 및 노트북 컴퓨터, 디바이스, 프린터, 서비스, 사용자 그룹 등)를 정리하고 관리하기 위한 인터페이스를 제공한다.
여기에 포함된 사용자 또는 사용자 그룹에는 디렉토리 내의 정보 및 개체에 액세스 할 수 있는 권한이 할당된다.
전화번호부를 예로 들면 사용자가 회사의 AD를 사용하여 동료의 연락처를 추적할 수 있다.
-> 우리 AD에는 아이디, 이메일, 전화번호, 마지막 접속 시간뿐 아니라 마지막으로 접속 요청이 실패한 시간 등 다양한 속성이 있다.
Active Directory (AD) and Lightweight Directory Access Protocol (LDAP) 차이?
AD의 기능 사용을 위해서는 해당 디렉토리의 쿼리, 유지보수 및 접근을 인증하기 위한 프로토콜이 필요하다.
이러한 프로토콜 중 하나가 LDAP(Lightweight Directory Access Protocol)으로 이름에서 알 수 있듯이 AD에 액세스 하는 데 사용되는 경량 클라이언트-서버 프로토콜이다.
AD 구성
AD는 Domain, Tree 및 forest로 구성되어 있다.
An AD tree is a collection of domains and forest is a collection of trees.
-> Tree는 Domain의 집합이고 forest는 tree의 집합이다.
" Domain < Tree < Forest "
1. 도메인(Domain)
- Active Directory의 가장 기본이 되는 단위로 AD가 설치된 여러 대의 윈도우 서버가 하나의 도메인을 가질 수 있다.
-> 우리는 6대의 AD 서버가 있고, 동일한 도메인을 사용하고 있다.
예를 들면 sunrise.com -> DC="sunrise",DC="com"
2. 트리(Tree)
AD 트리는 연속된 네임스페이스를 공유하는 하나 이상의 도메인의 집합이다.
예) Root 도메인 컨트롤러가 sunrise.com이라는 도메인일 때, 이 도메인을 확장하여
seoul.sunrise.com, busan.sunrise.com과 같이 자식 도메인 컨트롤러가 추가되는 형태이다.
현실에 적용시키면 ~ 서울에서 근무하던 직원들에 대한 정보를 변경사항 없이 부산에 있는 지사에서 동일하게 이용한다고 할 때
서울에 있는 도메인 컨트롤러와 부산에 있는 도메인 컨트롤러를 연결하기 위해 도메인 트리를 형성한다.
3. 포레스트(Forest)
하나 이상의 트리 집합이며, 트리의 확장을 위해 사용한다.
예) sunrise.com이라는 도메인을 갖고 있는 회사가 sunrisemin.com이라는 자회사를 생성했을 때
이런 상황에서는 포레스트로 구성을 하는 것이다. (인프라가 동일하다는 가정 하에)
중앙에서 관리하는 개념은 트리와 동일하다.
포레스트 내의 모든 도메인 컨트롤러는 구성 파티션 정보, 스키마 파티션 정보, 카탈로그를 공유한다.
트리와 동일하지만 위의 예와 같이 도메인이 다른 경우 포레스트로 구성을 한다.
LDAP 용어 정리
- CN = Common Name
- OU = Organizational Unit
- DC = Domain Component
조금 더 자세하게 수정할 예정 =)
("CN=09876,OU=정직원,OU=개인,DC=sunrise,DC=com");
References
댓글