Active Directory 개요

문서 버전을 선택합니다.

이 페이지에서는 일반 보안 서비스 애플리케이션 프로그래밍 인터페이스 (GSSAPI)를 사용하여 AlloyDB Omni에서 PostgreSQL이 Active Directory와 통합되는 방법을 설명하고 주요 Kerberos 개념을 소개합니다. Kerberos는 Active Directory를 지원하는 인증 프로토콜입니다.

Active Directory는 Microsoft에서 Windows 도메인 네트워크를 위해 개발한 디렉터리 서비스입니다. Active Directory는 사용자 데이터, 보안, 분산 리소스의 네트워크 관리를 자동화하는 중앙 집중식 표준 시스템입니다. 이 디렉터리 서비스는 사용자 계정, 그룹, 기타 네트워크 객체를 위한 단일 관리 지점을 제공합니다. Active Directory의 핵심 기능은 인증입니다. 인증은 사용자의 ID와 승인을 확인하고 사용자에게 네트워크의 특정 리소스에 대한 액세스 권한을 부여합니다.

Active Directory 구성요소

영역은 Kerberos 인증의 관리 도메인입니다. Active Directory의 컨텍스트에서 영역은 Active Directory 도메인과 동일합니다. 영역은 공통 인증 데이터베이스를 공유하는 사용자, 컴퓨터, 서비스의 논리적 그룹을 나타냅니다. Kerberos를 구성할 때 클라이언트와 서비스가 속한 영역을 지정해야 합니다. 영역은 도메인 이름의 대문자 버전입니다. 예를 들어 도메인이 ad.example.com이면 영역은 AD.EXAMPLE.COM입니다.

키 배포 센터(KDC)는 Active Directory의 모든 도메인 컨트롤러에서 실행되는 핵심 Kerberos 서비스입니다. KDC에는 다음과 같은 기본 기능이 있습니다.

  • 인증 서비스(AS): 초기 로그인 시(예: Windows에 로그인할 때) 사용자의 ID를 확인하고 허용 티켓(TGT)을 발급합니다.
  • 티켓 발급 서비스 (TGS): 유효한 TGT를 제시하는 인증된 사용자에게 서비스 티켓을 발급합니다. 이러한 서비스 티켓은 PostgreSQL 데이터베이스와 같은 특정 서비스에 대한 액세스 권한을 부여합니다.

주 구성원은 티켓이 할당될 수 있는 Kerberos 영역의 고유 ID입니다. 다음은 주요 주 구성원 유형입니다.

  • 사용자 주 구성원: 사람 사용자를 나타냅니다(예: username@REALM).
  • 서비스 사용자 이름(SPN): 특정 호스트의 특정 서비스를 나타냅니다(예: postgres/db-server.ad.example.com@REALM). 클라이언트가 데이터베이스의 서비스 티켓을 요청하려면 데이터베이스 서비스에 등록된 SPN이 있어야 합니다.

keytab 또는 키 테이블 파일에는 주 구성원 목록과 주 구성원의 비밀번호에서 파생된 해당 비밀 키가 포함되어 있습니다. 서비스는 키탭 파일을 사용하여 KDC에 ID를 증명하고 클라이언트가 제시한 서비스 티켓을 복호화합니다.

이 방식을 사용하면 PostgreSQL과 같은 서비스가 사람의 상호작용 없이 또는 서버에 일반 텍스트 비밀번호를 저장하지 않고도 Kerberos 시스템에 자체적으로 인증할 수 있습니다. keytab 파일은 매우 민감하므로 안전하게 저장하고 보호해야 합니다.

Active Directory와의 PostgreSQL 통합

PostgreSQL을 Active Directory와 통합하면 회사 ID를 기반으로 사용자 관리를 중앙 집중화하여 데이터베이스 보안을 강화할 수 있습니다.

인증을 지원하기 위해 PostgreSQL은 Active Directory와 통합하는 다음 방법을 제공합니다.

  • 경량 디렉터리 액세스 프로토콜 (LDAP): LDAP 프로토콜을 사용하여 Active Directory 서버에 대해 사용자를 인증하도록 PostgreSQL을 구성할 수 있습니다. 사용자가 데이터베이스에 연결하려고 하면 PostgreSQL은 LDAP를 통해 Active Directory 서버와 통신하여 사용자의 사용자 인증 정보(일반적으로 사용자 이름과 비밀번호)를 확인합니다. 이 메서드는 Active Directory를 외부 인증 공급자로 사용합니다.

  • Kerberos를 사용하는 일반 보안 서비스 애플리케이션 프로그램 인터페이스 (GSSAPI): Active Directory의 기본 인증 메커니즘인 Kerberos 프로토콜을 사용하는 더 안전하고 복잡한 방법입니다. GSSAPI는 애플리케이션이 보안 서비스에 액세스할 수 있는 표준 인터페이스를 제공합니다.

LDAP와 GSSAPI 모두 Active Directory 통합이라는 목표를 달성하지만, Kerberos를 사용하는 GSSAPI는 강력한 티켓 기반 암호화 인증으로 인해 엔터프라이즈 환경에서 더 안전하고 강력한 접근 방식입니다. 이 페이지에서는 GSSAPI 방법을 사용하여 AlloyDB Omni의 Active Directory 통합을 구현하는 방법을 설명합니다.

GSSAPI를 사용한 Active Directory 인증

AlloyDB Omni를 사용하면 Active Directory를 인증 백엔드로 사용하여 Kerberos를 통해 인증할 수 있습니다. 인증을 달성하는 단계는 다음 다이어그램에 나와 있습니다.

이미지

  1. 클라이언트 psql는 키 배포 센터 (KDC)의 인증 서비스 (AS)를 사용하여 인증 요청을 시작합니다.
  2. AS는 클라이언트를 인증하고 클라이언트에게 티켓 부여 티켓(TGT) (T1)을 발급합니다. 그런 다음 TGT를 사용하여 서비스 티켓을 요청합니다.
  3. 클라이언트는 TGT를 사용하여 PostgreSQL 서비스의 KDC에 있는 티켓 발급 서비스 (TGS)에서 서비스 티켓을 요청합니다. 이제 클라이언트가 특정 PostgreSQL 서버에 대한 액세스를 요청합니다.
  4. TGS는 TGT를 검증하고 클라이언트에 서비스 티켓 (T2)을 발급합니다. 이 티켓에는 세션 키 (T3)가 포함되어 있으며 PostgreSQL 서버의 보안 비밀 키를 사용하여 암호화됩니다.
  5. 클라이언트는 암호화된 서비스 티켓 (T2)을 PostgreSQL 서버에 전송합니다.
  6. PostgreSQL 서버는 키탭 파일의 키를 사용하여 서비스 티켓(T2)을 복호화한 다음 서버가 세션 키(T3)를 가져오고 티켓의 진위 여부를 확인합니다. 이 작업이 성공하면 서버는 액세스 권한을 부여하고 세션 키를 사용하여 클라이언트와 보안 통신 채널을 설정합니다.

다음 단계