Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / / /

Windows에서 Kerberos 인증을 사용하여 자체 관리형 MongoDB 구성하기

이 페이지의 내용

  • 개요
  • 전제 조건
  • 절차
  • 추가 고려 사항
  • 테스트 및 검증

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

Kerberos 배포 설정 및 구성은 이 문서의 범위를 벗어납니다. 이 튜토리얼에서는 각 mongod.exe인스턴스에 대해 Kerberos mongos.exe 서비스 주체 를 구성했다고 가정합니다.

복제본 세트 및 샤딩된 클러스터의 경우, 구성에서 IP 주소나 정규화되지 않은 호스트 이름 대신 FQDN(정규화된 도메인 이름)을 사용해야 합니다. Kerberos 영역을 올바르게 확인하고 연결할 수 있도록 하려면 GSSAPI용 FQDN을 사용해야 합니다.

1

Kerberos 사용자를 처음 추가하려면 Kerberos 지원 없이 mongod.exe를 시작합니다.

Kerberos 사용자가 이미 MongoDB에 있고 사용자 생성에 필요한 권한이 있는 경우, Kerberos 지원으로 mongod.exe를 시작할 수 있습니다.

배포에 적합한 추가 설정을 포함하세요.

참고

mongod mongos { 2} 및 는 기본적으로 로컬 호스트에 바인딩됩니다. 배포 구성원이 다른 호스트에서 실행되거나 원격 클라이언트를 배포에 연결하려는 경우 --bind_ip 또는 net.bindIp 를 지정해야 합니다.

2

mongoshmongod.exe 인스턴스에 연결합니다. mongod.exe--auth가 활성화되어 있는 경우 사용자를 만드는 데 필요한 권한으로 연결해야 합니다.

3

Kerberos 주체 <username>@<KERBEROS REALM>$external 데이터베이스의 MongoDB에 추가합니다. 대문자만을 사용해 Kerberos 영역을 지정합니다. $external 데이터베이스를 통해 mongod.exe가 외부 소스(예: Kerberos)를 사용하여 인증할 수 있습니다. 사용자의 권한을 지정하려면 사용자에게 역할을 할당합니다.

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

다음 예에서는 records 데이터베이스에 대한 읽기 전용 액세스 권한이 있는 Kerberos 주체 reportingapp@EXAMPLE.NET을 추가합니다.

use $external
db.createUser(
{
user: "reportingapp@EXAMPLE.NET",
roles: [ { role: "read", db: "records" } ]
}
)

필요에 따라 주체를 추가합니다. Kerberos를 사용하여 인증하려는 모든 사용자에 대해 MongoDB에서 해당 사용자를 생성해야 합니다. 사용자 생성 및 관리에 대한 자세한 내용은 사용자 관리 명령을 참조하세요.

4

서비스 주체 계정으로 mongod.exe를 시작해야 합니다.

Kerberos 지원으로 mongod.exe를 시작하려면 mongod.exe 매개 변수 authenticationMechanismsGSSAPI로 설정합니다.

mongod.exe --setParameter authenticationMechanisms=GSSAPI <additional mongod.exe options>

구성에 필요한 추가 옵션을 포함합니다. 예를 들어 원격 클라이언트를 배포에 연결하거나 배포 구성원이 다른 호스트에서 실행되도록 하려면 --bind_ip 를 지정합니다.

예를 들어 다음은 Kerberos를 지원하는 독립형 mongod.exe 인스턴스를 시작합니다:

mongod.exe --auth --setParameter authenticationMechanisms=GSSAPI --bind_ip localhost,<hostname(s)|ip address(es)>
5

mongosh 셸 클라이언트 를 Kerberos 주체 application@EXAMPLE.NET 로 연결합니다.

명령줄에서 연결하고 인증할 수 있습니다.

cmd.exe 사용:

mongosh.exe --host hostname.example.net --authenticationMechanism=GSSAPI --authenticationDatabase=$external --username reportingapp@EXAMPLE.NET

Windows PowerShell 사용:

mongosh.exe --host hostname.example.net --authenticationMechanism=GSSAPI --authenticationDatabase='$external' --username reportingapp@EXAMPLE.NET

호스트 이름이 Kerberos 이름과 일치하는 시스템에 연결하는 경우 --host 옵션에 IP 주소나 정규화되지 않은 호스트 이름 대신 FQDN(정규화된 도메인 이름)을 지정해야 합니다.

호스트 이름이 Kerberos 이름과 일치하지 않는 시스템에 연결하는 경우, 먼저 mongosh 셸 을 mongod.exe 에 연결한 다음 mongosh 셸 에서 db.auth() 메서드를 사용하여 $external 에서 인증합니다. 데이터베이스.

use $external
db.auth( { mechanism: "GSSAPI", user: "reportingapp@EXAMPLE.NET" } )

Kerberos 지원으로 mongos.exe를 시작하려면 mongos.exe 매개 변수 authenticationMechanismsGSSAPI로 설정합니다. 서비스 주체 계정으로 mongos.exe를 시작해야 합니다.

mongos.exe --setParameter authenticationMechanisms=GSSAPI <additional mongos options>

구성에 필요한 추가 옵션을 포함합니다. 예를 들어 원격 클라이언트를 배포에 연결하거나 배포 구성원이 다른 호스트에서 실행되도록 하려면 --bind_ip 를 지정합니다.

예를 들어 다음은 Kerberos를 지원하는 mongos 인스턴스를 시작합니다.

mongos.exe --setParameter authenticationMechanisms=GSSAPI --configdb shard0.example.net, shard1.example.net,shard2.example.net --keyFile C:\<path>\mongos.keyfile --bind_ip localhost,<hostname(s)|ip address(es)>

구성에 필요한 대로 추가적인 mongos.exe 옵션을 수정하거나 포함합니다. 예를 들어, 샤딩된 클러스터 멤버의 내부 인증에 --keyFile을 사용하는 대신 x.509 멤버 인증을 사용할 수 있습니다.

setspn.exe를 사용하여 mongod.exemongos.exe 서비스를 실행하는 계정에 SPN(서비스 사용자 이름)을 할당합니다.

setspn.exe -S <service>/<fully qualified domain name> <service account name>

예시

mongod.exe가 서비스 계정 이름 mongodtest를 사용하여 testserver.mongodb.com에서 mongodb라는 서비스로 실행되는 경우 다음과 같이 SPN을 할당합니다.

setspn.exe -S mongodb/testserver.mongodb.com mongodtest

Kerberos 인증(GSSAPI (Kerberos))을 함께 사용할 수 있습니다:

  • MongoDB의 SCRAM 인증 메커니즘:

  • LDAP를 위한 MongoDB의 인증 메커니즘:

  • x.509에 대한 MongoDB의 인증 메커니즘:

다음과 같이 메커니즘을 지정합니다:

--setParameter authenticationMechanisms=GSSAPI,SCRAM-SHA-256

다른 메커니즘은 사용 중인 경우에만 추가하세요. 이 매개 변수 설정은 MongoDB의 클러스터 멤버 내부 인증에 영향을 주지 않습니다.

구성 단계를 완료한 후 mongokerberos 도구를 사용하여 구성의 유효성을 검사할 수 있습니다.

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

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

돌아가기

Linux 에서 구성