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

mongoldap

이 페이지의 내용

  • Synopsis
  • 설치
  • 사용법
  • 옵션

3.4버전의 새로운 기능: MongoDB Enterprise

는 실행 서버 또는 서버MongoDB Enterprise mongoldap 설정하다 MongoDB 에 대해 의 LDAP 구성 옵션 을 테스트하기 위해 를 제공합니다.LDAP

구성 파일에서 LDAP 옵션의 유효성을 검사하려면 mongoldap --config 옵션을 구성 파일의 경로로 설정합니다.

LDAP 구성 옵션을 테스트하려면 --user--password 를 지정해야 합니다. mongoldap 는 제공된 구성 옵션 및 자격 증명을 사용하여 실행되는 MongoDB 서버에 대한 인증을 시뮬레이션합니다.

mongoldap LDAP 인증 또는 권한 부여 절차의 모든 단계의 성공 또는 실패가 포함된 보고서를 반환합니다. 오류 메시지에는 발생한 특정 오류에 대한 정보와 오류 해결을 위한 잠재적인 조언이 포함됩니다.

LDAP 권한 부여 와 관련된 옵션을 구성할 때 mongoldap 는 제공된 구성 옵션과 사용자 이름을 사용하여 구성된 LDAP 쿼리를 실행하고 admin 데이터베이스에서 사용자에게 권한이 부여된 역할 목록을 반환합니다.

사용자 액세스 제어를 위한 LDAP 권한 부여 역할 을 구성할 때 이 정보를 사용할 수 있습니다. 예를 들어 mongoldap 를 사용하여 권한이 있는 사용자가 예상 작업을 수행하는 데 필요한 역할을 얻을 수 있도록 구성을 허용하도록 합니다. 마찬가지로 mongoldap 를 사용하여 권한이 없는 사용자가 MongoDB 서버에 액세스하거나 무단 작업을 수행하기 위한 역할을 수행하지 못하도록 구성되도록 합니다.

LDAP 인증 과 관련된 옵션을 구성할 때 mongoldap 를 사용하여 인증 작업이 예상대로 작동하는지 확인합니다.

mongosh가 아닌 시스템 명령줄에서 mongoldap 를 실행 .

이 문서에서는 mongoldap 에 대한 모든 명령줄 옵션에 대한 전체 개요를 제공합니다.

mongoldap 도구는 MongoDB database 도구 추가 패키지의 일부이며, MongoDB Server와 함께 또는 독립형 설치로 설치할 수 있습니다.

MongoDB Server 설치의 일부로 을(를) 설치하려면 mongoldap MongoDB Enterprise 다음을 수행합니다.

  • 플랫폼에 맞는 지침을 따르세요: MongoDB Enterprise MongoDB Server 설치

  • 설치가 완료되면 mongoldap 및 기타 포함된 도구를 MongoDB Server와 동일한 위치에서 사용할 수 있습니다.

    참고

    Windows .msi 설치 프로그램 마법사의 경우 Complete 설치 옵션에는 mongoldap 가 포함됩니다.

mongoldap 를 독립형 설치로 설치하려면 다음을 수행합니다.

  • MongoDB Enterprise 다운로드 링크를 따라가세요: MongoDB Enterprise 다운로드 센터

  • 드롭다운 메뉴에서 Platform (운영 체제)를 선택한 다음, 다음 차트에 따라 플랫폼에 적합한 Package 를 선택합니다.

    OS
    패키지
    Linux
    tgz 패키지
    Windows
    zip 패키지
    macOS
    tgz 패키지
  • 다운로드가 완료되면 아카이브의 압축을 풀고 mongoldap 를 하드 드라이브의 위치에 복사합니다.

    Linux 및 macOS 사용자는 mongoldap$PATH 환경 변수에 정의된 파일 시스템 위치(예: /usr/bin)에 복사할 수 있습니다. 이렇게 하면 전체 경로를 지정하거나 먼저 상위 디렉토리로 이동하지 않고도 명령줄에서 mongoldap 를 이름으로 직접 참조할 수 있습니다. 자세한 내용은 해당 플랫폼의 설치 가이드 를 참조하세요.

참고

LDAP 또는 Active Directory에 대한 전체 설명은 이 문서의 범위를 벗어납니다.

Active Directory를 통한 LDAP 인증 및 권한 부여를 지원하도록 설계된 다음 샘플 구성 파일을 고려하세요.

security:
authorization: "enabled"
ldap:
servers: "activedirectory.example.net"
bind:
queryUser: "mongodbadmin@dba.example.com"
queryPassword: "secret123"
userToDNMapping:
'[
{
match : "(.+)",
ldapQuery: "DC=example,DC=com??sub?(userPrincipalName={0})"
}
]'
authz:
queryTemplate: "DC=example,DC=com??sub?(&(objectClass=group)(member:1.2.840.113556.1.4.1941:={USER}))"
setParameter:
authenticationMechanisms: "PLAIN"

mongoldap 를 사용하여 절차에 대한 보고서를 반환하는 구성 파일의 유효성을 검사할 수 있습니다. mongoldap 에 대한 사용자 이름과 비밀번호를 지정해야 합니다.

mongoldap --config=<path-to-config> --user="bob@dba.example.com" --password="secret123"

제공된 자격 증명이 유효하고 구성 파일의 LDAP 옵션이 유효한 경우 출력은 다음과 같을 수 있습니다.

Checking that an LDAP server has been specified...
[OK] LDAP server found
Connecting to LDAP server...
[OK] Connected to LDAP server
Parsing MongoDB to LDAP DN mappings..
[OK] MongoDB to LDAP DN mappings appear to be valid
Attempting to authenticate against the LDAP server...
[OK] Successful authentication performed
Checking if LDAP authorization has been enabled by configuration...
[OK] LDAP authorization enabled
Parsing LDAP query template..
[OK] LDAP query configuration template appears valid
Executing query against LDAP server...
[OK] Successfully acquired the following roles:
...
--config=<filename>, -f=<filename>

런타임 구성 옵션에 대한 구성 파일 을 지정합니다. 옵션은 명령줄 구성 옵션과 동일합니다. 자세한 내용은 자체 관리형 구성 파일 옵션 을 참조하세요.

mongoldap자체 관리형 LDAP 프록시 인증 또는 자체 관리 배포서버의 LDAP 권한 부여 와 관련된 구성 옵션을 사용하여 LDAP 인증 또는 권한 부여 를 테스트합니다.

--user 을(를) 지정해야 합니다. LDAP 인증 테스트를 위해 --password 을(를) 허용할 수 있습니다.

구성 파일이 ASCII 인코딩을 사용하는지 확인합니다. mongoldap 인스턴스는 UTF-8 를 포함하여 ASCII가 아닌 인코딩을 사용하는 구성 파일을 지원하지 않습니다.

--user=<string>

LDAP 인증 또는 권한 부여를 시도할 때 사용할 mongoldap 의 사용자 이름입니다.

--password=<string>

--user mongoldap LDAP 인증을 시도할 때 사용할 의 비밀번호입니다. LDAP 권한 부여에는 필요하지 않습니다.

--ldapServers=<host1>:<port>,<host2>:<port>,...,<hostN>:<port>

3.4버전의 새로운 기능: MongoDB Enterprise에서만 사용할 수 있습니다.

mongoldap 사용자를 인증하거나 사용자가 지정된 데이터베이스에서 수행할 수 있는 작업을 결정하는 LDAP 서버입니다. 지정된 LDAP 서버에 복제된 인스턴스가 있는 경우 각 복제된 서버의 호스트와 포트를 쉼표로 구분된 목록으로 지정할 수 있습니다.

LDAP 인프라가 여러 LDAP 서버에 걸쳐 LDAP 디렉토리를 분할하는 경우, 하나 의 LDAP 서버 또는 해당 서버의 복제된 인스턴스를 --ldapServers 으로 지정합니다. MongoDB는 RFC 4511 4.1 에 정의된 대로 다음과 같은10 LDAP 참조를 지원합니다. . 인프라의 모든 LDAP 서버를 나열하는 데 --ldapServers 을(를) 사용하지 마세요.

설정하지 않으면 mongoldap 에서 LDAP 인증 또는 권한 부여를 사용할 수 없습니다.

--ldapQueryUser=<string>

3.4버전의 새로운 기능: MongoDB Enterprise에서만 사용할 수 있습니다.

LDAP 서버에 연결하거나 쿼리를 수행할 때 mongoldap 이(가) 바인딩되는 ID입니다.

다음 중 하나라도 해당하는 경우에만 필요합니다.

--ldapQueryUser--ldapQueryPassword를 함께 사용해야 합니다.

설정하지 않으면 mongoldap 는 LDAP 서버에 바인딩을 시도하지 않습니다.

참고

Windows MongoDB 배포는 --ldapBindWithOSDefaults--ldapQueryUser--ldapQueryPassword 대신 사용할 수 있습니다. --ldapQueryUser--ldapBindWithOSDefaults를 동시에 지정할 수는 없습니다.

--ldapQueryPassword=<string | array>

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

--ldapQueryUser 사용 시 LDAP 서버에 바인딩하는 데 사용되는 비밀번호입니다. --ldapQueryPassword--ldapQueryUser를 함께 사용해야 합니다.

설정하지 않으면 mongoldap는 LDAP 서버에 바인딩을 시도하지 않습니다.

setParameter를 사용하여 실행 중인 mongoldap에서 이 설정을 구성할 수 있습니다.

ldapQueryPassword setParameter 명령은 string 또는 string 배열을 허용합니다. ldapQueryPassword 배열에 설정하면, MongoDB는 성공할 때까지 각 암호를 순서대로 시도합니다. 비밀번호 배열을 사용하여 다운타임 없이 LDAP 계정 비밀번호를 롤오버할 수 있습니다.

참고

Windows MongoDB 배포는 --ldapBindWithOSDefaults--ldapQueryUser--ldapQueryPassword 대신 사용할 수 있습니다. --ldapQueryPassword--ldapBindWithOSDefaults를 동시에 지정할 수는 없습니다.

--ldapBindWithOSDefaults=<bool>

기본값: false

3.4버전의 새로운 기능: Windows 플랫폼용 MongoDB Enterprise에서만 사용할 수 있습니다.

LDAP 서버에 연결할 때 mongoldap 가 Windows 로그인 자격 증명을 사용하여 인증하거나 바인딩할 수 있도록 허용합니다.

다음과 같은 경우에만 필요합니다.

--ldapBindWithOSDefaults를 사용하여 --ldapQueryUser--ldapQueryPassword를 변경합니다.

--ldapBindMethod=<string>

기본값: 단순

3.4버전의 새로운 기능: MongoDB Enterprise에서만 사용할 수 있습니다.

mongoldap 이(가) LDAP 서버에 인증하는 데 사용하는 메서드입니다. --ldapQueryUser--ldapQueryPassword 와 함께 사용하여 LDAP 서버에 연결합니다.

--ldapBindMethod 다음 값을 지원합니다.

설명
simple
mongoldap , 간단한 인증을 사용합니다.
sasl
mongoldap 인증에 SASL 프로토콜을 사용합니다.

sasl 을 지정하면 --ldapBindSaslMechanisms 를 사용하여 사용 가능한 SASL 메커니즘을 구성할 수 있습니다. mongoldap 기본적으로 DIGEST-MD5 메커니즘을 사용합니다.

--ldapBindSaslMechanisms=<string>

기본값입니다: DIGEST-MD5

3.4버전의 새로운 기능: MongoDB Enterprise에서만 사용할 수 있습니다.

쉼표로 구분된 SASL 메커니즘 mongoldap 의 목록으로, LDAP 서버에 인증할 때 사용할 수 있습니다. mongoldap 와 LDAP 서버는 하나 이상의 메커니즘에 동의해야 합니다. mongoldap 는 런타임에 호스트 머신에 설치된 모든 SASL 메커니즘 라이브러리를 동적으로 로드합니다.

mongoldap 호스트와 원격 LDAP 서버 호스트 모두에서 선택한 SASL 메커니즘에 적합한 라이브러리를 설치하고 구성합니다. 운영 체제에는 기본적으로 특정 SASL 라이브러리가 포함될 수 있습니다. 설치 및 구성에 대한 지침은 각 SASL 메커니즘과 관련된 설명서를 참조하세요.

자체 관리 배포서버에서 Kerberos 인증 과 함께 GSSAPI SASL 메커니즘을 사용하는 경우 mongoldap 호스팅하다 시스템에 대해 다음을 확인합니다.

Linux
Windows
Active Directory 서버에 연결하는 경우 Windows Kerberos 구성은 자동으로 티켓 부여 티켓을 생성합니다. 사용자가 시스템에 로그인할 때. --ldapBindWithOSDefaultstrue 로 설정하여 mongoldap 가 Active Directory 서버에 연결할 때 생성된 자격 증명을 사용하고 쿼리를 실행할 수 있도록 허용합니다.

이 옵션을 사용하려면 --ldapBindMethodsasl로 설정합니다.

참고

SASL 메커니즘의 전체 목록은 IANA 목록을 참조하세요. 해당 서비스와 호환되는 SASL 메커니즘을 확인하려면 해당 LDAP 또는 Active Directory 서비스의 설명서를 참조하세요.

MongoDB는 SASL 메커니즘 라이브러리의 출처가 아닙니다. 또한, MongoDB 설명서는 특정 SASL 메커니즘 설치나 구성을 위한 절대적인 출처가 아닙니다. 설명서와 지원은 SASL 메커니즘 라이브러리 공급업체나 소유자에게 요청하시기 바랍니다.

SASL에 관한 자세한 내용은 다음 리소스를 참조하세요.

--ldapTransportSecurity=<string>

기본값: tls

3.4버전의 새로운 기능: MongoDB Enterprise에서만 사용할 수 있습니다.

기본적으로 mongoldap 는 LDAP 서버에 대한 TLS/SSL 보안 연결을 생성합니다.

Linux 배포의 경우 /etc/openldap/ldap.conf 파일에서 적절한 TLS 옵션을 구성해야 합니다. 운영 체제의 패키지 관리자가 libldap 종속성을 통해 MongoDB Enterprise 설치의 일부로 이 파일을 생성합니다. 더 자세한 내용은 ldap.conf OpenLDAP 설명서에서 TLS Options에 관한 설명을 참조하세요.

Windows 배포서버의 경우, 반드시 LDAP 서버 CA 인증서를 Windows 인증서 관리 도구에 추가해야 합니다.도구의 정확한 이름과 기능은 운영 체제의 버전에 따라 다를 수 있습니다.인증서 관리에 관한 자세한 정보는 Windows 버전별 설명서를 참조하세요.

--ldapTransportSecuritynone 로 설정하여 mongoldap 와 LDAP 서버 간의 TLS/SSL을 비활성화합니다.

경고

--ldapTransportSecurity 을(를) none 으)로 설정하면 mongoldap 와 LDAP 서버 간에 일반 텍스트 정보와 자격 증명이 전송될 수 있습니다.

--ldapTimeoutMS=<long>

기본값: 10000

3.4버전의 새로운 기능: MongoDB Enterprise에서만 사용할 수 있습니다.

LDAP 서버가 요청에 응답할 때까지 대기해야 하는 시간(밀리초) mongoldap 입니다.

--ldapTimeoutMS 값을 늘리면 실패의 원인이 연결 시간 초과인 경우 MongoDB Server와 LDAP 서버 간의 연결 실패를 방지할 수 있습니다. --ldapTimeoutMS 값을 줄이면 MongoDB가 LDAP 서버의 응답을 기다리는 시간이 줄어듭니다.

--ldapUserToDNMapping=<string>

3.4버전의 새로운 기능: MongoDB Enterprise에서만 사용할 수 있습니다.

인증을 위해 mongoldap 에 제공된 사용자 이름을 LDAP DN(고유 이름)에 매핑합니다. 다음 시나리오에서는 --ldapUserToDNMapping 를 사용하여 사용자 이름을 LDAP DN으로 변환해야 할 수 있습니다.

  • 사용자가 완전한 LDAP DN이 아닌 사용자 이름으로 MongoDB에서 인증하는 간단한 LDAP 바인딩을 사용해 LDAP 인증을 실행하는 경우

  • DN이 필요한 LDAP authorization query template 를 사용합니다.

  • 다양한 인증 메커니즘을 사용하여 Mongo DB로 인증하는 클라이언트의 사용자 이름 변환 (예: x.509, kerberos)를 전체 LDAP DN에 추가하여 권한 부여를 받을 수 있습니다.

--ldapUserToDNMapping은 문서의 정렬된 배열을 나타내는 따옴표로 묶인 JSON 문자열을 기대합니다. 각 문서에는 정규 표현식 match 및 들어오는 사용자 이름을 변환하는 데 사용되는 substitution 또는 ldapQuery 템플릿이 포함되어 있습니다.

배열의 각 문서는 다음과 같은 형식을 갖습니다.

{
match: "<regex>"
substitution: "<LDAP DN>" | ldapQuery: "<LDAP Query>"
}
필드
설명
예시
match
제공된 사용자 이름과 일치하는 ECMAScript 형식의 정규 표현식(regex)입니다. 괄호로 묶인 각 섹션은 substitution 또는 ldapQuery에서 사용하는 regex 캡처 그룹을 나타냅니다.
"(.+)ENGINEERING" "(.+)DBA"
substitution

match 정규식과 일치하는 인증 이름을 LDAP DN(고유 이름)으로 변환하는 LDAP DN 형식 템플릿입니다. 중괄호로 묶인 각 숫자 값은 match 정규식을 통해 인증 사용자 이름에서 추출한 해당 정규식 캡처 그룹으로 대체됩니다.

대체의 결과는 이스케이프된 RFC4514 문자열이어야 합니다.

"cn={0},ou=engineering, dc=example,dc=com"
ldapQuery
match 정규식과 일치하는 인증 이름을 RFC4515 및 RFC4516 에 따라 인코딩된 LDAP 쿼리 URI에 삽입하는 LDAP 쿼리 서식 지정 템플릿입니다. 중괄호로 묶인 각 숫자 값은 해당 정규식 캡처 그룹 으로 match 대체됩니다. 표현식을 통해 인증 사용자 이름에서 추출합니다. mongoldap 는 LDAP 서버에 대해 쿼리를 실행하여 인증된 사용자의 LDAP DN을 검색합니다. mongoldap 변환이 성공하려면 정확히 하나의 반환된 결과가 필요하거나 mongoldap 이 변환을 건너뜁니다.
"ou=engineering,dc=example, dc=com??one?(user={0})"

참고

RFC4514, RFC4515, RFC4516 또는 LDAP 쿼리에 대한 설명은 MongoDB 문서의 범위를 벗어납니다. RFC를 직접 검토하거나 선호하는 LDAP 리소스를 사용하세요.

배열의 각 문서에 대해 substitution 또는 ldapQuery 사용해야 합니다. 동일한 문서에서 둘 다 지정할 수는 없습니다 .

인증 또는 권한 부여를 수행할 때 mongoldap 는 지정된 순서대로 배열의 각 문서를 살펴보고 match 필터에 대해 인증 사용자 이름을 확인합니다. 일치하는 항목이 발견되면 mongoldap 는 변환을 적용하고 사용자를 인증하기 위해 출력을 사용합니다. mongoldap 는 배열의 나머지 문서를 확인하지 않습니다.

지정된 문서가 제공된 인증 이름과 일치하지 않는 경우 mongoldap 은 문서 목록을 계속 진행하여 일치하는 항목을 추가로 찾습니다. 문서에서 일치하는 항목이 없거나 문서에서 설명하는 변환이 실패하면 mongoldap 에서 오류를 반환합니다.

mongoldap 는 LDAP 서버에 대한 네트워킹 또는 인증 실패로 인해 변환 중 하나를 평가할 수 없는 경우에도 오류를 반환합니다. mongoldap 연결 요청을 거부하고 배열의 나머지 문서를 확인하지 않습니다.

MongoDB 5.0부터 --ldapUserToDNMapping은 매핑 문서 대신 빈 문자열인 "" 또는 빈 배열인 [ ]을 허용합니다. 11}에 빈 문자열 또는 빈 배열을 제공하는 경우, MongoDB는 인증된 사용자 이름을 LDAP DN으로 --ldapUserToDNMapping 매핑합니다. 이전에는 빈 매핑 문서를 제공하면 매핑이 실패했습니다.

예시

다음은 두 개의 변환 문서를 보여줍니다. 첫 번째 문서는 @ENGINEERING로 끝나는 모든 문자열과 일치하며 접미사 앞에 오는 모든 항목을 regex 캡처 그룹에 배치합니다. 두 번째 문서는 @DBA로 끝나는 모든 문자열과 일치하며, 접미사 앞에 오는 모든 항목을 regex 캡처 그룹에 배치합니다.

중요

--ldapUserToDNMapping에 배열을 문자열로 전달해야 합니다.

"[
{
match: "(.+)@ENGINEERING.EXAMPLE.COM",
substitution: "cn={0},ou=engineering,dc=example,dc=com"
},
{
match: "(.+)@DBA.EXAMPLE.COM",
ldapQuery: "ou=dba,dc=example,dc=com??one?(user={0})"
}
]"

사용자 이름이 alice@ENGINEERING.EXAMPLE.COM인 사용자가 첫 번째 문서와 일치합니다. Regex 캡처 그룹 {0}은 문자열 alice에 해당합니다. 결과 출력은 DN "cn=alice,ou=engineering,dc=example,dc=com"입니다.

사용자 이름이 bob@DBA.EXAMPLE.COM 인 사용자가 두 번째 문서와 일치합니다. 정규식 캡처 그룹 {0} 은(는) string bob에 해당합니다. 결과 출력은 LDAP 쿼리 "ou=dba,dc=example,dc=com??one?(user=bob)" 입니다. mongoldap 은 LDAP 서버에 대해 이 쿼리를 실행하여 결과 "cn=bob,ou=dba,dc=example,dc=com" 을 반환합니다.

--ldapUserToDNMapping 가 설정되지 않은 경우 mongoldap 는 LDAP 서버에 대해 사용자를 인증하거나 권한을 부여하려고 시도할 때 사용자 이름에 변환을 적용하지 않습니다.

--ldapAuthzQueryTemplate=<string>

3.4버전의 새로운 기능: MongoDB Enterprise에서만 사용할 수 있습니다.

RFC4515 를 준수하는 형식의 상대 LDAP mongoldap 쿼리 URL입니다. 및 RFC4516 가 인증된 사용자가 속한 LDAP 그룹을 가져오기 위해 실행합니다. 쿼리는 --ldapServers 에 지정된 하나 이상의 호스트를 기준으로 합니다.

URL에서 다음과 같은 대체 토큰을 사용할 수 있습니다.

대체 토큰
설명
{USER}
인증된 사용자 이름을 대체하거나 username mapping이 지정된 경우 transformed 사용자 이름을 대체합니다.
{PROVIDED_USER}
인증 또는 LDAP transformation 전에 제공된 사용자 이름 등을 대체합니다.

쿼리 URL을 구성할 때 LDAP 매개 변수의 순서가 RFC4516을 준수하는지 확인하세요.

[ dn [ ? [attributes] [ ? [scope] [ ? [filter] [ ? [Extensions] ] ] ] ] ]

쿼리에 속성이 포함된 경우 mongoldap 는 쿼리가 이 엔터티가 속한 DN을 검색한다고 가정합니다.

쿼리에 속성이 포함되지 않은 경우 mongoldap 는 쿼리가 사용자가 멤버인 모든 엔터티를 검색한다고 가정합니다.

쿼리에서 반환된 각 LDAP DN에 대해 mongoldapadmin 데이터베이스에서 권한이 부여된 사용자에게 해당 역할을 할당합니다. admin 데이터베이스의 역할이 DN과 정확히 일치하는 경우 mongoldap 는 사용자에게 해당 역할에 할당된 역할과 권한을 부여합니다. 역할 생성에 대한 자세한 내용은 db.createRole() 메서드를 참조하세요.

예시

이 LDAP 쿼리는 LDAP 사용자 개체의 memberOf 속성에 나열된 모든 그룹을 반환합니다.

"{USER}?memberOf?base"

LDAP 구성에 memberOf 속성이 사용자 스키마의 일부로 포함되어 있지 않거나, 그룹 멤버십을 보고하는 데 다른 속성이 있거나, 속성을 통해 그룹 멤버십을 추적하지 못할 수 있습니다. 고유한 LDAP 구성과 관련하여 쿼리를 구성합니다.

설정하지 않으면 mongoldap 에서 LDAP를 사용하는 사용자에게 권한을 부여할 수 없습니다.

참고

RFC4515, RFC4516 또는 LDAP 쿼리에 대한 설명은 MongoDB 문서의 범위를 벗어납니다. RFC를 직접 검토하거나 선호하는 LDAP 리소스를 사용하세요.

돌아가기

mongokerberos

이 페이지의 내용