문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / /

자체 관리 배포서버에 대한 Kerberos 인증

이 페이지의 내용

  • 개요
  • Kerberos 구성 요소 및 MongoDB
  • 운영 고려 사항
  • Kerberized MongoDB 환경
  • 테스트 및 검증

MongoDB Enterprise는 mongodmongos 인스턴스에 대한 MongoDB 클라이언트의 Kerberos 인증을 지원합니다. Kerberos는 대규모 클라이언트/서버 시스템을 위한 업계 표준 인증 프로토콜입니다. Kerberos를 사용하면 MongoDB와 애플리케이션이 기존 인증 인프라 및 프로세스를 활용할 수 있습니다. MongoDB Enterprise는 MIT 구현 만 지원합니다. 의 Kerberos.

Kerberos 기반 시스템에서 인증된 통신의 모든 참가자를 "주체"라고 하며, 모든 주체는 고유한 이름을 가져야 합니다.

주체는 영역이라는 관리 단위에 속합니다. Kerberos 키 배포 센터(KDC)는 각 영역에 대해 영역의 주체 및 주체와 관련된 "비밀 키" 데이터베이스를 유지 관리합니다.

클라이언트-서버 인증의 경우 클라이언트는 KDC에 특정 자산에 대한 액세스를 위한 "티켓"을 요청합니다. KDC는 클라이언트의 비밀과 서버의 비밀을 사용하여 비밀을 숨기면서도 클라이언트와 서버가 서로를 상호 인증할 수 있는 티켓을 구성합니다.

Kerberos 지원용 MongoDB 구성의 경우, 이해 관계가 있는 사용자 주체서비스 주체라는 두 가지의 주체 이름이 있습니다.

Kerberos를 사용하여 인증하려면 MongoDB의 Kerberos 사용자 주체를 $external 데이터베이스에 추가해야 합니다. 사용자 주체 이름은 다음과 같은 형식을 갖습니다.

<username>@<KERBEROS REALM>

Kerberos를 사용하여 인증하려는 모든 사용자에 대해 MongoDB의 $external 데이터베이스에 해당 사용자를 생성해야 합니다.

2} 인증 사용자(Kerberos, LDAP 또는 x.509 사용자)와 함께 클라이언트 세션 및 인과적 일관성 보장을 사용하려면 사용자 이름이 10KB보다 클 수 없습니다. $external

MongoDB에 사용자를 추가하고 해당 사용자로 인증하는 방법의 예는 Linux에서 Kerberos 인증을 사용하여 자체 관리형 MongoDB 구성 및 Windows에서 Kerberos 인증을 사용하여 자체 관리형 MongoDB 구성을 참조하세요.

다음도 참조하세요.

자체 관리 배포서버에서 사용자 및 역할 관리 를 참조하여 MongoDB에서 사용자를 생성하고 관리하는 방법에 관한 일반 정보를 확인하세요.

모든 MongoDB mongodmongos 인스턴스(Windows의 경우 mongod.exe 또는 mongos.exe)에는 연결된 서비스 주체가 있어야 합니다. 서비스 주체 이름은 다음과 같은 형식을 갖습니다.

<service>/<fully qualified domain name>@<KERBEROS REALM>

MongoDB의 경우 <service> 기본값은 mongodb입니다. 예를 들어 m1.example.com이 MongoDB 서버이고 example.comEXAMPLE.COM Kerberos 영역을 유지 관리하는 경우, m1은 서비스 주체 이름 mongodb/m1.example.com@EXAMPLE.COM을 가져야 합니다.

<service>에 다른 값을 지정하려면 mongod 또는 mongos(또는 mongod.exe 또는 mongos.exe)를 시작하는 동안 serviceName을 사용합니다. mongosh 또는 다른 클라이언트는 serviceName을 사용하여 다른 서비스 주체 이름을 지정할 수도 있습니다.

서비스 주체 이름은 서비스 주체 이름의 FQDN(정규화된 도메인 이름) 부분을 사용하여 네트워크를 통해 연결할 수 있어야 합니다.

기본적으로 Kerberos는 DNS를 사용하여 호스트를 확인하기 전에 /etc/krb5.conf 파일을 사용하여 호스트를 식별하려고 시도합니다.

Windows에서 MongoDB를 서비스로 실행하는 경우, MongoDB Windows 서비스에 서비스 주체 이름 할당을 참조하세요.

Linux 시스템은 서비스 주체에 대한 Kerberos 인증 키를 키탭 파일에 저장할 수 있습니다. Linux에서 실행되는 각 Kerberized mongodmongos 인스턴스는 해당 서비스 주체에 대한 키가 포함된 키탭 파일에 액세스할 수 있어야 합니다.

키탭 파일을 안전하게 유지하려면 mongod 또는 mongos 프로세스를 실행하는 사용자로만 액세스를 제한하는 파일 권한을 사용합니다.

Linux에서 MongoDB 클라이언트는 Kerberos의 kinit 프로그램을 사용하여 사용자 주체를 서버에 인증하기 위해 자격 증명 캐시를 초기화할 수 있습니다.

Linux 시스템과 달리 Windows에서 실행 중인 mongodmongos 인스턴스는 키탭 파일에 액세스할 필요가 없습니다. 대신 mongodmongos 인스턴스는 운영 체제별 자격 증명 저장소에서 서버 자격 증명을 읽습니다.

그러나 Windows Active Directory에서는 Linux 시스템에서 사용할 수 있도록 키탭 파일을 내보낼 수 있습니다. Ktpass 참조 을(를) 참조하세요.

Kerberos 지원 및 인증을 위해 MongoDB를 구성하려면 Linux에서 Kerberos 인증을 사용하여 자체 관리형 MongoDB 구성 및 Windows에서 Kerberos 인증을 사용하여 자체 관리형 MongoDB 구성을 참조하세요.

mongod 또는 mongos 인스턴스를 실행하는 각 호스트에는 APTR DNS 레코드가 모두 있어야 정방향 및 역방향 조회를 제공할 수 있습니다.

APTR DNS 레코드가 없으면 호스트가 Kerberos 도메인 또는 KDC(키 배포 센터)의 구성 요소를 확인할 수 없습니다.

인증에 성공하려면 각 mongodmongos 인스턴스의 시스템 시간이 Kerberos 인프라에 있는 다른 호스트의 시스템 시간에서 5분 이내여야 합니다.

다음 MongoDB 드라이버는 Kerberos 인증을 지원합니다.

MongoDB는 다른 인증 메커니즘과 함께 Kerberos 인증을 사용하도록 지원하지만, 다른 메커니즘은 필요한 경우에만 추가하세요. 자세한 내용은 Linux에서 Kerberos 인증을 사용하여 자체 관리형 MongoDB 구성 및 Windows에서 Kerberos 인증을 사용하여 자체 관리형 MongoDB 구성의 Incorporate Additional Authentication Mechanisms 섹션을 참조하세요.

mongokerberos 프로그램은 MongoDB와 함께 사용할 플랫폼의 Kerberos 구성을 확인하고 MongoDB 클라이언트의 Kerberos 인증이 예상대로 작동하는지 테스트할 수 있는 편리한 방법을 제공합니다. 자세한 내용은 mongokerberos 문서를 참조하세요.

mongokerberos MongoDB Enterprise에서만 사용할 수 있습니다.

돌아가기

자체 관리 배포서버에 대한 인증