1. 토픽
  2. 보안
  3. LDAP(Lightweight Directory Access Protocol) 인증이란?

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

CopiedFailedURL 복사

LDAP(Lightweight Directory Access Protocol)는 사용자가 조직, 사람 등에 대한 데이터를 찾을 수 있도록 지원하는 프로토콜입니다. LDAP에는 두 가지 주요 목표가 있습니다. 하나는 LDAP 디렉터리에 데이터를 저장하는 것이고, 다른 하나는 사용자를 인증하여 디렉터리에 액세스할 수 있도록 하는 것입니다. 또한 애플리케이션이 디렉터리 서비스에서 정보를 주고받는 데 필요한 통신 언어를 제공합니다. 디렉터리 서비스는 네트워크 내에서 조직, 개인 및 기타 데이터에 관한 정보가 있는 위치에 대한 액세스를 제공합니다.

가장 일반적인 LDAP 활용 사례는 디렉터리 서비스에 액세스하고 관리하기 위한 중앙 위치를 제공하는 것입니다. 조직은 LDAP를 사용하여 조직, 사용자, 자산(예: 사용자 이름, 비밀번호)에 대한 정보를 저장, 관리하고 보호할 수 있습니다. 이는 정보의 계층 구조를 제공하여 스토리지 액세스를 간소화하는 데 도움이 되며, 기업이 성장하고 더 많은 사용자 데이터와 자산을 확보하는 데 있어 매우 중요할 수 있습니다. 

또한 LDAP는 Kerberos 및 SSO(Single Sign-On), SASL(Simple Authentication Security Layer), SSL(Secure Sockets Layer)에 대한 지원을 포함하여 사용자 인증을 대상으로 하는 Identity 및 액세스 관리(IAM) 솔루션 역할도 수행합니다.

Red Hat Enterprise Linux 경험하기

LDAP는 Microsoft의 Active Directory(AD) 디렉터리 서비스에서 사용되는 핵심 프로토콜이지만, 해당 서비스에만 사용되는 것은 아닙니다. 이 대규모 디렉터리 서비스 데이터베이스에는 네트워크 내 모든 사용자 계정을 포괄하는 정보가 포함되어 있습니다. 더 구체적으로 설명하면 LDAP는 디렉터리 액세스 프로토콜(Directory Access Protocol, DAP)의 경량 버전으로, 전송 제어 프로토콜/인터넷 프로토콜(Transmission Control Protocol, TCP/Internet Protocol, IP)에서 실행되는 디렉터리 서비스에 액세스하고 관리하기 위한 중앙 위치를 제공합니다. 최신 버전은 LDAPv3입니다. 

AD는 사용자 및 그룹의 인증 및 관리를 제공하며, 궁극적으로 사용자 또는 컴퓨터를 인증합니다. 이 데이터베이스에는 LDAP로 가져오는 것보다 많은 속성 볼륨이 포함되어 있습니다. 그러나 LDAP는 정보가 거의 없는 디렉터리 오브젝트를 찾는 데 특화되어 있으므로, AD 또는 가져오는 디렉터리 서비스에서 모든 속성을 추출할 필요가 없습니다.

LDAP의 주요 목표는 AD의 오브젝트(예: 도메인, 사용자, 그룹 등)와 통신하고, 해당 오브젝트를 저장하고, LDAP 서버에 있는 자체 디렉터리에 사용 가능한 형식으로 추출하는 것입니다. 

이렇게 생각해 보세요. 세계에서 가장 큰 도서관인 AD에서 여러분은 좀비가 언급된 제목의 책을 찾고 있습니다. 미국에서 출판되었는지, 1,000페이지가 넘는 분량인지, 또는 좀비 아포칼립스에서 살아남는 방법을 안내하는 내용인지 등의 세부 정보 LDAP의 세계에서는 중요하지 않습니다. 가능한 옵션을 축소하는 데 도움을 줄 수는 있지만 말입니다. LDAP는 요청을 충족하는 모든 옵션을 어디에서 찾아야 할지 정확히 알고 있고, 원하는 대상을 찾았는지 확인해 주는 경험 풍부한 사서에 비유할 수 있습니다.

Red Hat으로 Linux 보안 최적화

LDAP 검색이 실행되는 계기 및 작동 방식은?

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

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

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

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

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

LDAP의 경량 구조와 DIT 사용을 통해 신속하게 LDAP 검색을 실행하고 결과를 제공할 수 있습니다. LDAP 서버를 성공적으로 탐색하고 LDAP 검색이 작동하는 방식을 이해하기 위해 중요한 것은 DIT를 이해하는 것입니다.

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

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

dc(예: dc=com, dc=example)는 도메인 이름 시스템(Domain Name System, DNS) 매핑을 사용하여 인터넷 도메인 이름을 찾아 IP 주소로 변환합니다. 

대부분의 사용자는 검색하는 개인의 도메인 이름 및/또는 IP 주소를 모릅니다. 이 경우 LDAP는 사용자에게 할당된 고유 이름(Distinguished Name, 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은 name 속성의 값입니다.

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

그 외에 검색 범위를 좁히는 데 도움이 되는 다양한 속성 유형과 구문이 있으며, 여기에는 OrganizationPerson(구조) 또는 Personal(구조)과 같은 ObjectClass도 포함됩니다. 그러나 LDAP의 속성은 가볍고 사용하기 쉽게 하려고 그 수가 제한됩니다.

엔터프라이즈 네트워크 관리자는 일반적으로 한 번에 수천 명의 사용자를 관리합니다. 사용자의 역할에 따라 액세스 제어 및 정책을 할당하고, 회사 인트라넷과 같은 일상적인 태스크 수행을 위한 파일 액세스 권한을 할당해야 합니다.

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

  • 용량: 얼마나 많은 사용자 관리 데이터를 저장해야 하나요? LDAP 솔루션을 구현하는 제품이 필요한 모든 데이터를 저장하고 관리할 수 있는지 검토하세요.

  • 검색 빈도: 회사 인트라넷, 이메일 애플리케이션 또는 서비스와 같이 사용자가 매일 액세스해야 하는 데이터가 있나요? 그렇다면 LDAP가 적합할 수 있습니다.

  • 조직: LDAP의 간단한 DIT가 데이터를 위한 충분한 조직을 제공하나요, 아니면 더 세부적인 시스템이 필요한가요?

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

Red Hat® Enterprise Linux®에는 전체 데이터센터에 걸쳐 확장 가능한 단일 인터페이스를 사용하여 사용자를 인증하고 RBAC를 구현할 수 있는 중앙집중식 Identity 관리 기능이 포함되어 있습니다.

Red Hat Enterprise Linux를 통한 Identity 관리는 다음과 같은 다양한 인증 및 권한 부여 기능을 제공합니다. 

  • 중앙화된 Identity 관리. Red Hat Enterprise Linux는 중앙화된 Identity 관리를 지원하여 조직이 단일 위치에서 보안 제어를 적용하고, 컴플라이언스 표준을 충족하며, 인증 정책을 관리할 수 있도록 합니다. 이를 통해 플랫폼 전반에서 일관성을 보장하고, 사용자 경험을 개선하며, IT 부담을 줄일 수 있습니다.
  • 다단계 인증(MFA) 및 비밀번호 없는 인증 기능. Red Hat Enterprise Linux는 다단계 인증(MFA)을 제공하여 두 번째 ID 확인 계층을 지원합니다. Red Hat Enterprise Linux는 SSH 및 GDM 로그인을 위한 FIDO2/WebAuthn 및 암호 키 파생 Kerberos 티켓을 포함하여 암호 없는 인증을 지원함으로써 제로 트러스트 아키텍처(ZTA) 성숙도를 높여서 보안을 단순한 MFA를 넘어 피싱 방지 및 적응형 인증 상태로 발전시킵니다.
  • 외부 IdP(Identity Provider) 통합. Red Hat Enterprise Linux를 사용하면 OAuth 2.0을 사용하는 클라이언트를 통해 사용자를 인증할 수 있으며, Keycloak, Entra ID(Azure AD), GitHub와 같은 외부 IdP(Identity Provider)와 통합할 수 있습니다. 이를 통해 인증 및 권한 부여 프로세스를 외부 엔터티에 위임할 수 있어, 다양한 IT 환경에서 유연성과 상호운용성이 향상됩니다.
  • 통합 정책 및 인증서 관리. Red Hat Enterprise Linux는 IdM(Identity Management) 서버 관리 권한을 위임하기 위한 역할 기반 액세스 제어와 권한 상승을 제한하는 사용자 지정 sudo 규칙을 비롯해 맞춤형 보안 정책 관리 기능을 제공합니다. 또한 인증서 만료 시점을 추적하고 적시에 갱신되도록 하며, ZTA의 핵심 구성 요소인 공개 키 인프라(PKI) 인증을 사용해 신뢰할 수 있는 Identity를 검증하는 등 인증서의 전체 라이프사이클을 자동화하는 강력한 인증서 관리 툴도 제공합니다.
  • 시스템 역할을 통한 자동화 및 오케스트레이션. Red Hat Enterprise Linux는 Red Hat System Roles(Ansible Automation Platform 기반)를 사용하여 보안 구성과 관리를 자동화합니다. 이러한 자동화는 클라우드부터 온프레미스까지 모든 환경 전반에서 대규모로 일관성과 컴플라이언스를 보장하는 데 필수적이며, 수작업과 잠재적인 구성 오류를 줄여줍니다. 시스템 역할은 CISA ZTA 프레임워크 내 자동화 및 오케스트레이션 계층의 일부입니다.

Red Hat Enterprise Linux 보안에 대해 자세히 알아보기

또한 Red Hat은 더 특별한 요구 사항에 대응할 수 있도록 Red Hat Directory Server를 애드온(add-on)으로 제공합니다.

Red Hat Directory Server는 대규모의 다양한 환경에 맞게 확장할 수 있는 LDAP 기반 디렉터리입니다. 비용이 많이 드는 기존의 타사 LDAP 솔루션을 거의 즉시 대체할 수 있으며, 다양한 복제 옵션으로 분산되고 복잡한 디렉터리 토폴로지를 관리할 수 있습니다. 이 솔루션은 디렉터리 데이터에 대해 사용자 지정 가능한 속성과 스키마를 제공하여 유연성을 제공합니다.

레드햇 공식 블로그

레드햇 공식 블로그에서 고객, 파트너, 커뮤니티 에코시스템 등 현재 화제가 되는 최신 정보를 살펴 보세요.

모든 Red Hat 제품 체험판

무료 제품 체험판을 통해 핸즈온 경험을 얻고, 자격증 시험에 대비하거나 해당 제품이 조직에 적합한지 평가할 수 있습니다.

추가 자료

보안 자동화란?

보안 자동화는 보안 프로세스, 애플리케이션, 인프라를 통합하기 위해 자동화 기술을 사용하여 사람의 개입을 줄인 상태에서 태스크를 수행합니다.

DevSecOps란?

DevOps의 민첩성과 대응 능력을 최대한 활용하려면 IT 보안 팀이 애플리케이션의 전체 라이프사이클에서 주요 역할을 해야 합니다.

시프트 레프트(Shift Left)와 시프트 라이트(Shift Right)

시프트 레프트와 시프트 라이트는 모두 소프트웨어 개발 라이프사이클의 각 단계에서 지속적인 테스트를 구현하는 방식을 뜻합니다.

보안 리소스

관련 기사