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)를 사용하여 인증할 수 있습니다. 사용자의 권한을 지정하려면 사용자에게 역할을 할당합니다.

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

다음 예에서는 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 shell 셸 클라이언트 Kerberos application@EXAMPLE.NET를 Kerberos 주체 로 연결합니다.

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

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 shell shell 호스트 이름이 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 에서 구성