본문 바로가기
카테고리 없음

LDAP(Lightweight Directory Access Protocol) 인증

by 용용이아바이 2024. 2. 6.
728x90

LDAP

LDAP(Lightweight Directory Access Protocol)는 사용자가 조직, 구성원 등에 대한 데이터를 찾는 데 도움이 되는 프로토콜이다. LDAP는 LDAP 디렉터리에 데이터를 저장하고 사용자가 디렉터리에 액세스할 수 있도록 인증하기 위해 주로 사용된다. 또한 애플리케이션이 디렉터리 서비스와 정보를 주고 받는 데 필요한 통신 언어를 제공한다. 디렉터리 서비스는 네트워크 내에서 조직, 개인 및 기타 데이터에 대한 정보가 있는 위치에 액세스할 권한을 제공한다.

가장 일반적인 LDAP 활용 사례는 디렉터리 서비스에 액세스하여 해당 서비스를 관리할 수 있는 중앙 위치를 제공하는 것이다.  LDAP를 사용하는 조직은 조직, 조직의 사용자, 자산(예: 사용자 이름, 암호)에 대한 정보를 저장, 관리, 보호할 수 있다.  LDAP는 정보 계층 구조를 제공하여 스토리지 액세스를 간소화하는 데 도움이 되고, 기업이 성장하면서 더 많은 사용자 데이터와 자산을 확보함에 따라 중요할 수 있다. LDAP는 Kerberos 및 SSO(Single Sign-On), SASL(Simple Authentication Security Layer), SSL(Secure Sockets Layer) 지원을 포함하여 사용자 인증을 목표로 Identity 및 액세스 관리(IAM) 솔루션 역할을 하기도 한다.


 

LDAP 인증 프로세스

LDAP 검색을 요청하는 작업은 무엇이며 어떻게 작동할까?

LDAP 인증 프로세스는 클라이언트-서버 인증 모델로, 다음과 같은 주요 요소로 구성된다. 

  • DSA(Directory System Agent): 네트워크에서 LDAP를 실행하는 서버
  • DUA(Directory User Agent): DSA에 클라이언트(예: 사용자의 PC)로 액세스
  • DN: LDAP에서 탐색할 디렉터리 정보 트리(DIT)를 통한 경로가 포함된 고유 이름(예: cn=Susan, ou=users, o=Company)
  • RDN(Relative Distinguished Name): DN 내 경로의 각 구성 요소(예: cn=Susan)
  • 애플리케이션 프로그래밍 인터페이스(API): API를 사용하면 다른 제품/서비스의 구현 방식을 몰라도 보유한 제품/서비스와 다른 제품/서비스가 서로 통신할 수 있다.

사용자가 PC에서 비즈니스 이메일 애플리케이션과 같은 LDAP 지원 클라이언트 프로그램에 액세스를 시도할 때 이 프로세스가 시작된다.  LDAPv3에서는 두 가지 사용 가능한 사용자 인증 방법, 즉 로그인 자격 증명이 있는 SSO와 같은 단순 인증 또는 Kerberos와 같은 프로그램에 LDAP 서버를 바인딩하는 SASL 인증 중 하나를 거친다. 로그인을 시도하면 사용자에게 할당된 DN을 인증하는 요청이 전송된다. DN은 DSA를 시작하는 클라이언트 API 또는 서비스를 통해 전송된다.

클라이언트는 자동으로 DSA에 바인딩되고 LDAP는 DN을 사용하여 LDAP 데이터베이스의 레코드에 대해 일치하는 오브젝트 또는 오브젝트 집합을 검색한다.  이 단계에서 DN의 RDN이 매우 중요한데, 개인을 찾을 수 있도록 DIT를 통한 LDAP 검색의 각 단계를 제공하기 때문이다. 경로에서 백엔드에 연결 RDN이 없으면 결과가 유효하지 않은 것으로 나타날 수 있다. 이 경우 LDAP가 검색하는 오브젝트는 개별 사용자 계정(cn=Susan)이며 디렉터리의 계정에 일치하는 uid 및userPassword가 있는 경우에만 사용자를 검증할 수 있습니다. 사용자 그룹은 LDAP 디렉터리 내의 오브젝트로도 식별된다.

사용자가 응답(유효성 여부)을 받으면 LDAP 서버에서 클라이언트의 바인딩이 해제된다. 그러면 인증된 사용자가 시스템 관리자가 부여한 권한에 따라 필요한 파일, 사용자 정보 및 기타 애플리케이션 데이터를 포함하여 API 및 해당 서비스에 액세스할 수 있다.


 

LDAP 구성 요소 이해

LDAP의 경량 구조와 DIT를 사용하여 LDAP 검색을 빠르게 실행하고 결과를 제공할 수 있다. LDAP 서버를 탐색하고 LDAP 검색의 작동 방식을 이해하려면 DIT를 이해해야 한다.

DIT를 사용하면 다양한 수준의 LDAP 디렉터리를 빠르게 탐색하여 검색 결과의 범위를 좁히고 쿼리에 대한 응답을 제공할 수 있다. DIT는 루트 디렉터리에서 시작하고 국가가 뒤따르며 두 하위 클래스인 도메인 구성 요소(dc)와 조직 이름(o)으로 분기된다.

도메인 액세스 구성 요소 (dc)

dc(즉 dc=com, dc=example)는 DNS(Domain Name System) 매핑을 사용하여 인터넷 도메인 이름을 찾은 후 이를 IP 주소로 변환한다. 

대부분의 사용자는 자신이 검색하는 개인의 도메인 이름 및/또는 IP 주소를 모릅니다. 이 경우 LDAP는 사용자에게 할당된 고유 이름(DN)을 경로로 사용하여 DIT를 빠르게 탐색하고 검색 결과를 찾는다. 여기에서 o 하위 클래스가 나타난다. 

조직 이름(o)

o 하위 클래스(예: o-Company)는 DN에 나열된 가장 일반적인 하위 클래스 중 하나로, 보통 LDAP가 검색을 실행할 때 시작되는 위치다. 예를 들어, 단순 경로는 일반적으로 o 하위 클래스로 시작하여 조직 단위(ou)로 분기한 다음 사용자 계정 또는 그룹이 이어진다. 

조직 단위(ou)

앞서 언급했듯이 ou는 o의 하위 클래스이며 종종 ou=users 또는 ou=group으로 표시된다. 각각 사용자 계정 또는 그룹 목록이 포함되어 있다. 다음은 디렉터리에서 볼 수 있는 방법이다.

  • o-Company
    • ou=groups
      • cn=developers
    • ou=users
      • cn=Susan 

일반 이름(cn)

일반 이름(cn)은 그룹 또는 개별 사용자 계정의 이름을 식별하는 데 사용된다(예: cn=developers, cn=Susan). 사용자는 그룹에 속할 수 있으므로 Susan이 개발자인 경우 cn=developers 아래에 있을 수도 있다.

속성 및 값

LDAP DIT의 각 하위 클래스(예: o, ou, cn)에 포함되는 속성과 값 또는 스키마에는 LDAP 디렉터리 구조에 대한 정보가 포함되어 있어 검색 범위를 좁히는 데 도움이 될 수 있다. 속성은 이름, 전화번호, 주소와 같은 레이블이 포함된 주소록 항목에 있는 내용과 유사하며 각 속성에 할당된 값이 있다. 예를 들어 Susan은 이름 속성의 값이다.

cn=Susan 계정에서 사용자 ID(uid)와 userPassword는 속성에 해당하고 사용자의 로그인 자격 증명은 값이다. 그러나 cn=developers와 같은 그룹에서는 Susan에 uniqueMember 속성이 있다(예: uniqueMember=cn-Susan,ou-Users,o-Company). 이 속성은 LDAP가 검색하는 정보와 함께 Susan의 개인 사용자 계정이 있는 위치에 경로를 매핑한다. 사용자 계정은 DIT 행의 끝이며 LDAP가 궁극적으로 검색 결과를 추출하는 위치다. 

OrganizationPerson(구조적) 또는 personal(구조적)과 같은 ObjectClasses를 포함한 기타 다양한 속성 유형과 구문을 사용하여 검색 범위를 좁힐 수 있다. 그러나 LDAP의 속성은 경량을 유지하고 손쉽게 사용할 수 있도록 그 수가 제한된다.


 

LDAP 사용 이유

엔터프라이즈 네트워크 관리자는 일반적으로 한 번에 수천 명의 사용자를 관리한다. 따라서 회사 인트라넷과 같이 일상적인 태스크를 위해 사용자 역할과 파일에 대한 액세스를 기반으로 액세스 제어 및 정책을 할당할 책임이 있다.

LDAP는 사용자 관리 프로세스를 간소화하고 네트워크 관리자의 귀중한 시간을 절약하며 인증 프로세스를 중앙화한다. LDAP를 환경에 통합하기 전에 다음을 고려해야 한다.

  • 용량: 얼마나 많은 사용자 관리 데이터를 저장해야 할까? LDAP 솔루션을 구현하는 제품에 필요한 모든 데이터를 저장하고 관리할 수 있는 기능이 있는지 고려해야 한다.
  • 검색 빈도: 회사 인트라넷, 이메일 애플리케이션 또는 서비스와 같이 사용자가 매일 액세스해야 하는 데이터가 있나? 그렇다면 LDAP가 적합할 수 있다.
  • 조직: LDAP의 단순한 DIT가 데이터에 필요한 조직을 충분히 제공할까, 아니면 더 세부적인 시스템이 필요할까?

LDAP는 일반적으로 AD에서 사용되지만, UNIX의 Red Hat Directory Server 및 Windows의 오픈소스 애플리케이션인 OpenLDAP를 비롯하여 다른 툴 및 클라이언트 환경에 대한 사용자 인증에도 사용할 수 있다. API 관리역할 기반 액세스 제어(RBAC) 또는 Docker 및 쿠버네티스와 같은 기타 애플리케이션과 서비스를 위한 LDAP 인증 및 사용자 관리 기능을 활용할 수도 있다.

 

 

LDAP(Lightweight Directory Access Protocol) 인증이란?

LDAP(Lightweight Directory Access Protocol)는 사용자가 조직, 구성원 등에 대한 데이터를 찾는 데 도움이 되는 프로토콜입니다. LDAP 디렉터리에 데이터를 저장하고 사용자가 디렉터리에 액세스할 수 있도

www.redhat.com

 

728x90