Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

Microsoft Entra ID Domain Services를 사용하여 사용자 인증 및 권한 부여 구성

이 페이지의 내용

참고

MongoDB 8.0부터 LDAP 인증 및 권한 부여는 더 이상 지원되지 않습니다. 이 기능은 사용할 수 있으며 MongoDB 8의 수명 기간 동안 변경 없이 계속 작동합니다. LDAP는 향후 주요 릴리스에서 제거될 예정입니다.

자세한 내용은 LDAP 사용 중단을 참조하세요.

참고

다음 배포에서는 이 기능 을 사용할 수 없습니다.

  • 서버리스 인스턴스

  • M0 클러스터

  • M2/M5 클러스터

  • Flex 클러스터

학습보려면 제한을 참조하세요.

이 가이드에서는 Atlas가 Microsoft Entra ID Domain Services 에서 데이터베이스 사용자(Atlas 사용자가 아님)를 인증하고 권한을 부여하도록 설정하는 방법을 보여줍니다.타사 LDAP 제공자입니다.

LDAP 인증만 활성화하거나 LDAP 인증과 권한 부여를 모두 활성화할 수 있습니다.

  • LDAP 인증만 활성화하는 경우 개별 사용자를 Atlas에 추가하고 추가하는 각 사용자에게 데이터베이스 액세스 권한을 할당합니다.

  • LDAP 인증 및 권한 부여를 활성화하는 경우 Atlas에 사용자 그룹을 추가하고 각 그룹에 데이터베이스 액세스 권한을 할당할 수 있습니다. 사용자는 자신이 속한 LDAP 그룹으로부터 데이터베이스 액세스 권한을 상속받습니다.

Atlas는 Microsoft Entra ID Domain Services의 데이터베이스 사용자 인증 및 권한 부여를 지원합니다.

  • LDAP 통합을 활성화하려면 M10 이상의 Atlas 클러스터를 배포해야 합니다. LDAP 통합은 Atlas Enterprise 기능입니다.

  • Atlas는 데이터베이스 사용자를 위한 싱글 사인온 통합을 지원하지 않습니다. Atlas 관리 웹 인터페이스의 싱글 사인온 통합에 대해 자세히 알아보려면 Configure Federated Authentication(연합 인증 구성)을 참조하세요.

LDAP 사용자 또는 그룹을 관리하려면 Atlas에 대한 Organization Owner 또는 Project Owner 액세스 권한이 있어야 합니다.

Microsoft Entra ID Domain Services LDAP를 Atlas와 통합하려면 다음이 필요합니다.

  • Azure 구독. 구독을 얻으려면 Microsoft Azure 포털을 방문하세요.

  • Contributor 권한 또는 Azure 구독 이상이 있어야 LDAP 통합에 필요한 리소스를 만들 수 있습니다.

  • 구독과 연결된 Microsoft Entra ID 테넌트. Microsoft Entra ID 테넌트 설정에 대한 자세한 내용은 Microsoft Entra ID 설명서를 참조하세요.

  • Global Administrator Microsoft Entra ID 테넌트에서 Microsoft Entra ID Domain Services를 활성화할 수 있는 권한.

  • 라우팅 가능한 사용자 지정 도메인 이름.

1

Microsoft Entra ID Domain Services를 구성하려면 고급 관리 도메인 Custom domain names 생성 지침을 따르세요. 튜토리얼에서 DNS 이름 옵션을 사용하여 Azure 설명서를 참조하세요.

관리형 도메인을 구성할 때는 DNS domain name 필드에 입력한 값을 기록해 두어야 합니다. 이 값은 <managed-domain>입니다. 이 튜토리얼의 여러 곳에 이 정보를 제공해야 합니다.

예시

aadds.example.com

2

Microsoft Entra ID Domain Services는 SSL 인증서를 사용하여 LDAP를 보호합니다. 인증서는 Azure 설명서에설명된 요구 사항을 준수해야 합니다.

인증서를 받으려면 다음과 같이 하세요:

  • 조직에서 사용하는 공용 또는 엔터프라이즈 인증 기관(CA)에서 받으세요.

    • 보안 LDAP가 Microsoft Entra ID Domain Services에서 제대로 작동하도록 보장하려면 와일드카드 인증서를 발급해야 합니다.

    • 인증서의 주체 이름은 Microsoft Entra ID Domain Services를 구성할 때 사용한 <managed-domain>과 일치해야 합니다.

      예시

      *.aadds.example.com

  • 자체 서명된 인증서를 생성합니다. 자체 서명된 인증서는 프로덕션에 권장되지 않습니다.

테스트 목적으로 MacOS 또는 Linux 시스템에서 자체 서명된 인증서를 생성하려면 다음을 수행합니다.

참고

macOS Catalina를 사용하는 경우 최신 버전의 openssl을 설치하세요. Homebrew를 사용하여 설치하려면 다음 명령어를 실행하세요.

brew install openssl
  1. openssl을 사용하여 개인 키를 생성합니다. 다음 명령어는 <your-key-name>.key로 명명된 비공개 키 파일을 생성합니다.

    openssl genrsa -out <your-key-name>.key 2048
  2. 다음 구성 파일 템플릿을 편집합니다. [dn-param] 섹션의 속성을 조직과 관련된 값으로 업데이트합니다. 주체 이름(CN)이 다음 템플릿과 일치하는지 확인합니다: *.<managed-domain>

    예시

    *.aadds.example.com

    # openssl x509 extfile params
    extensions = extend
    [req] # openssl req params
    prompt = no
    distinguished_name = dn-param
    [dn-param] # DN fields
    C = US
    ST = NY
    L = New York
    O = MongoDB
    OU = Atlas
    CN = *.aadds.example.com
    [extend] # openssl extensions
    subjectKeyIdentifier = hash
    authorityKeyIdentifier = keyid:always
    keyUsage = digitalSignature,keyEncipherment,keyCertSign
    extendedKeyUsage=serverAuth,clientAuth
  3. 파일을 <your-config-name>.cfg(으)로 저장합니다.

  4. 생성한 키와 구성 파일을 사용하여 인증서 서명 요청을 생성합니다. 다음 명령어는 <your-csr-name>.csr(으)로 명명된 인증서 서명 요청을 생성합니다.

    openssl req -new -key <your-key-name>.key \
    -out <your-csr-name>.csr -config <your-config-name>.cfg \
    -extensions extend
  5. 생성한 키, 구성, 인증서 서명 요청 파일을 사용하여 자체 서명된 인증서를 생성합니다. 다음 명령어는 다음 이름의 자체 서명된 인증서 파일을 생성합니다: <your-cert-name>.crt

    openssl x509 -req -sha256 -days 365 -in <your-csr-name>.csr \
    -signkey <your-key-name>.key -out <your-cert-name>.crt \
    -extfile <your-config-name>.cfg

테스트 목적으로 Windows 시스템에서 자체 서명된 인증서를 생성하려면 Azure 설명서를 참조하세요.

3

Microsoft Entra ID Domain Services는 비공개 키를 사용하여 보안 LDAP 트래픽을 해독합니다. 비공개 키가 포함된 인증서는 PKCS#12 형식과 .pfx 파일 형식을 사용합니다. 공용 인터넷을 통해 전송된 보안 LDAP 트래픽을 해독하려면 이 형식의 인증서를 Microsoft Entra ID Domain Services에 업로드해야 합니다.

MacOS 또는 Linux 시스템에서 .pfx 인증서를 생성하려면 다음을 수행합니다.

  1. 공개 키와 SSL 인증서를 로컬 시스템에 저장합니다.

    참고

    인증서는 PEM 형식을 사용해야 합니다.

    인증서에 비공개 키가 포함되어 있지 않으면 비공개 키를 .key 형식 파일로 저장할 수 있습니다.

  2. 비공개 키와 openssl이 포함된 인증서를 사용하여 .pfx 인증서를 생성합니다. 다음 명령어는 <your-cert-name>.pfx(으)로 명명된 .pfx 인증서 파일을 생성합니다.

    openssl pkcs12 -export -out <your-cert-name>.pfx \
    -inkey <your-key-name>.key -in <your-cert-name>.crt

    메시지가 표시되면 파일을 암호화할 비밀번호를 입력하고 확인합니다. Microsoft Entra ID Domain Services에 .pfx 인증서를 업로드할 때 비공개 키를 해독하려면 이 비밀번호를 입력해야 합니다.

.pfx Windows 시스템에서 인증서를 생성하려면 Azure 설명서를 참조하세요.

4

Microsoft Entra ID Domain Services에서 보안 LDAP를 활성화하려면 Azure 설명서를 참조하세요.

5

Atlas와 데이터베이스 노드가 Microsoft Entra ID Domain Services가 관리하는 사용자 지정 도메인의 LDAP 서버에 연결할 수 있도록 DNS 제공자를 구성해야 합니다.

<managed-domain>의 하위 도메인을 Microsoft Entra ID Domain Services LDAP 서비스가 사용하는 외부 IP 주소로 확인하는 LDAP 트래픽에 대한 호스트 레코드를 생성합니다.

LDAP IP 주소
LDAP 트래픽용 하위 도메인
203.0.113.77
ldap.aadds.example.com

Microsoft Entra ID Domain Services LDAP 서비스에서 사용하는 외부 IP 주소를 찾으려면 Azure 설명서를 참조하세요.

6

사용자 지정 도메인 이름을 Microsoft Entra ID에 추가하여 도메인에 속한 사용자를 생성할 수 있습니다. 도메인을 추가한 후에는 DNS 제공자의 TXT 레코드에 Microsoft Entra ID DNS 정보도 추가하고 구성을 확인해야 합니다.

Microsoft Entra ID에 사용자 지정 도메인을 추가하려면 Azure 설명서를 참조하세요.

7

Microsoft Entra ID Domain Services를 Atlas의 LDAP 제공자로 사용하려면 공용 인터넷에서 636 포트까지 모든 포트를 통한 모든 트래픽을 허용해야 합니다.

포트 에서 인바운드 LDAP 트래픽을 허용하는 인바운드 보안 규칙을 추가하려면 636 Azure 설명서를 참조하세요.

8

바인드 사용자를 생성합니다. 바인드 사용자는 계정을 쿼리하고 데이터베이스 사용자가 Atlas 데이터베이스에 연결할 때 자격 증명을 인증하는 데 사용하는 Microsoft Entra ID 사용자입니다. 바인드 사용자는 Microsoft Entra ID에 추가한 사용자 지정 도메인에 속해 있어야 합니다.

Microsoft Entra ID 사용자를 생성하려면 Azure 설명서를 참조하세요.

9

바인드 사용자가 Microsoft Entra ID Domain Services를 사용하려면 먼저 Kerberos 및 NTLM 인증을 위해 바인드 사용자에 대한 비밀번호 해시를 생성해야 합니다. 단계는 Microsoft Entra ID 사용자 계정 유형에 따라 다릅니다.

사용자에 대한 비밀번호 해시를 생성하는 방법을 알아보려면 Azure 설명서를 참조하세요.

10

Microsoft Entra ID를 쿼리하려면 바인딩 사용자에게 디렉토리 리더 역할에서 부여한 권한이 있어야 합니다.

바인드 사용자에게 디렉토리 리더 역할을 할당하려면 Azure 설명서를 참조하세요.

11

아직 존재하지 않는 경우 데이터베이스 액세스 권한을 부여하려는 사용자를 Microsoft Entra ID Domain Services에서 생성하세요. 사용자는 Microsoft Entra ID에 추가한 사용자 지정 도메인에 속해 있어야 합니다.

Microsoft Entra ID 사용자를 생성하려면 Azure 설명서를 참조하세요.

다음 절차에 따라 Atlas는 Microsoft Entra ID Domain Services LDAP에서 데이터베이스 사용자를 인증할 수 있습니다.

1
  1. 아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.

  3. 사이드바에서 Security 제목 아래의 Advanced를 클릭합니다.

    고급 페이지가 표시됩니다.

2

참고

이 기능을 활성화하면 추가 비용이 발생할 수 있습니다. Advanced Security(고급 보안)를 참조하세요.

3

여러 서버를 쉼표로 구분하여 나열할 수 있습니다. 다른 포트는 사용할 수 없습니다.

4

다음 예와 유사하게 사용자를 DN에 매핑에 추가하여 클라이언트가 Atlas 데이터베이스에 연결할 때 전체 DN 대신 사용자 이름을 제공하도록 허용합니다.

[
{
"match":"(.+)",
"substitution":"CN={0},OU=AADDC Users,DC=<managed-domain>,DC=com"
}
]

참고

Microsoft Entra ID Domain Services의 경우, 고유 이름의 속성은 대문자여야 합니다.

<managed-domain>이(가) 하나 이상의 하위 도메인으로 구성된 경우 각 고유 이름에 DC(domainComponent) 속성을 추가해야 합니다.

예시

<managed-domain>이(가) aadds.example.com인 경우 도메인 구성 요소는 다음과 같습니다.

DC=aadds,DC=example,DC=com

5

자체 서명된 인증서를 제공할 수 있습니다.

6

Atlas에서 변경 사항을 배포할 때까지 기다립니다. Atlas는 제공한 구성 세부 정보를 사용하여 클러스터가 LDAP 서버로 연결, 인증, 쿼리할 수 있음을 확인합니다.

7
  1. 아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.

  3. 사이드바에서 Security 제목 아래의 Database Access를 클릭합니다.

    데이터베이스 액세스 페이지가 표시됩니다.

8

참고

LDAP 권한 부여를 활성화하려면 이 단계를 건너뛰 세요.

Azure AD에서 관리되는 사용자를 Atlas에 추가합니다.

  1. 딸깍 하는 소리 Add New Database User.

  2. LDAP User를 클릭합니다.

  3. 다음 중 하나를 수행합니다:

    1. User to DN Mapping을 입력하지 않은 경우 LDAP 사용자의 전체 DN을 입력합니다. 다음 템플릿을 따릅니다.

      CN=<user-name>,OU=AADDC Users,DC=<managed>,DC=<domain>,DC=com

      예를 들어 <user-name>이(가) Jane Doe이고 <managed-domain>이(가)aadds.example.com인 경우 사용자의 DN은 다음과 같습니다.

      CN=Jane Doe,ou=AADDC Users,DC=aadds,DC=example,DC=com
    2. User to DN Mapping을 입력한 경우 매핑에 필요한 사용자 이름을 입력하세요.

  4. 사용자에게 부여할 데이터베이스 액세스 수준을 선택합니다.

  5. Add User를 클릭합니다.

참고

LDAP 권한 부여를 활성화하지 않으려면 이 섹션을 건너뜁니다.

중요

  • 권한 부여를 활성화하기 전에 LDAP로 인증을 활성화해야 합니다.

  • LDAP 권한 부여를 활성화하고 구성하면 LDAP 인증에 대해서만 구성된 데이터베이스 사용자는 더 이상 데이터베이스에 액세스할 수 없습니다.

Atlas LDAP 권한 부여는 LDAP 그룹을 사용하여 사용자가 데이터베이스 작업을 수행할 수 있는 권한이 있는지 여부를 결정합니다.

사용자에게 부여하려는 각 액세스 수준에 대해 별도의 Microsoft Entra ID 그룹을 생성합니다. 예를 들어 한 데이터베이스에 대한 읽기 액세스용 그룹 하나와 읽기 및 쓰기 액세스용 그룹 하나 등을 생성할 수 있습니다. 각 사용자에게 필요한 액세스 수준에 따라 사용자를 그룹에 할당합니다.

Microsoft Entra ID 데이터베이스 액세스 그룹을 만들고 사용자를 할당하려면 Azure 설명서를 참조하세요.

참고

LDAP 권한 부여를 활성화하지 않으려면 이 섹션을 건너뜁니다.

다음 절차에서는 Microsoft Entra ID Domain Services 데이터베이스 액세스 그룹을 Atlas에 추가하고 Atlas에서 데이터베이스 사용자 권한 부여를 활성화합니다.

1
  1. 아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.

  3. 사이드바에서 Security 제목 아래의 Database Access를 클릭합니다.

    데이터베이스 액세스 페이지가 표시됩니다.

2

생성된 각 Azure 데이터베이스 그룹을 Atlas에 추가합니다. 추가한 그룹의 노드는 그룹에 부여된 데이터베이스 작업을 수행할 권한이 있습니다.

  1. 딸깍 하는 소리 Add New Database User.

  1. LDAP Group을 클릭한 다음 User to DN Mapping을 활성화한 경우에도 데이터베이스 사용자가 포함된 그룹의 전체 DN을 입력합니다 . 다음 템플릿을 따릅니다.

    CN=<group-name>,OU=AADDC Users,DC=<managed-domain>,DC=com

    참고

    Microsoft Entra ID Domain Services의 경우, 고유 이름의 속성은 대문자여야 합니다.

    <managed-domain>이(가) 하나 이상의 하위 도메인으로 구성된 경우 각 고유 이름에 DC(domainComponent) 속성을 추가해야 합니다.

    예시

    <managed-domain>이(가) aadds.example.com인 경우 도메인 구성 요소는 다음과 같습니다.

    DC=aadds,DC=example,DC=com

    예를 들어 <group-name>이(가) Atlas read only이고 <managed-domain>이(가)aadds.example.com인 경우 사용자의 DN은 다음과 같습니다.

    CN=Atlas read only,OU=AADDC Users,DC=aadds,DC=example,DC=com
  1. 이 그룹의 사용자에게 부여할 데이터베이스 액세스 수준을 선택합니다.

  2. Add User를 클릭합니다.

3
  1. 아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.

  3. 사이드바에서 Security 제목 아래의 Advanced를 클릭합니다.

    고급 페이지가 표시됩니다.

4
5
6

사용자가 작업을 수행하려고 하면 Atlas는 LDAP 쿼리 템플릿을 실행하여 인증된 사용자가 속한 LDAP 그룹을 가져옵니다. Atlas는 쿼리가 작업을 수행할 권한이 있는 그룹을 하나 이상 반환하는 경우 작업을 허용합니다. 쿼리에서 작업을 수행할 권한이 있는 그룹을 반환하지 않는 경우 Atlas는 작업을 허용하지 않습니다.

Atlas는 쿼리를 실행할 때 {USER} 자리 표시자에서 인증된 사용자 이름을 대체합니다. 쿼리는 Server Hostname에 지정된 호스트에 상대적입니다.

쿼리 형식은 RFC4515 을 준수해야 합니다.

사용자가 속한 그룹을 식별하려면 기본 Query Template을 사용합니다.

{USER}?memberOf?base

참고

다른 쿼리 템플릿도 작동할 수 있습니다.

7

Atlas에서 변경 사항을 배포할 때까지 기다립니다. Atlas는 제공한 구성 세부 정보를 사용하여 클러스터가 LDAP 서버로 연결, 인증, 쿼리할 수 있음을 확인합니다.

다음 절차에서는 LDAP 인증(그리고 활성화된 경우 LDAP 권한 부여)이 올바르게 구성되었는지 확인합니다.

참고

LDAP 인증이 활성화된 경우 데이터베이스 사용자는 클라이언트에 대한 연결 문자열에서 다음 매개변수를 재정의해야 합니다.

  • authSource 필수 $external

  • authenticationMechanism 필수 PLAIN

1
  1. 아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

  3. 아직 표시되지 않은 경우 사이드바에서 Clusters를 클릭합니다.

    Clusters(클러스터) 페이지가 표시됩니다.

2

연결 문자열을 복사하려면 다음을 수행합니다.

  1. Connect를 클릭합니다.

  2. LDAP을 클릭한 다음 Copy를 클릭합니다.

  3. 사용자 DN 및 비밀번호와 함께 문자열을 붙여넣고 편집합니다.

참고

User to DN Mapping(DN 매핑에 대한 사용자)가 활성화되지 않은 경우 사용자의 전체 DN으로 클러스터에 연결합니다.

참고

Microsoft Entra ID Domain Services의 경우, 고유 이름의 속성은 대문자여야 합니다.

<managed-domain>이(가) 하나 이상의 하위 도메인으로 구성된 경우 각 고유 이름에 DC(domainComponent) 속성을 추가해야 합니다.

예시

<managed-domain>이(가) aadds.example.com인 경우 도메인 구성 요소는 다음과 같습니다.

DC=aadds,DC=example,DC=com

사용자 또는 그룹 이름에 대해 사용자의 전체 DN에서 공백을 이스케이프 처리합니다.

--username CN=Jane\ Doe,OU=AADDC\ Users,DC=aadds,DC=example,DC=com

참고

사용자의 전체 DN을 사용하는 경우 AADDC Users OU(Organizational Unit, 조직 단위)만 포함합니다. 사용자가 속한 다른 Microsoft Entra ID 그룹을 포함하지 마세요.

3

참고

Microsoft Entra ID Domain Services에서 LDAP 검색을 수행하려면 바인드 사용자가 Microsoft Entra ID DC Administrators 그룹의 구성원이어야 합니다. ldapsearch 를 실행하기 전에 바인드 사용자에게 이러한 권한이 있는지 확인합니다 .

ldapsearch를 통해 Atlas를 사용하도록 구성한 쿼리 템플릿이 예상한 대로 사용자 DN을 반환하는지 확인하세요. LDAP 인증은 작동하지만 LDAP 권한 부여가 작동하지 않는 경우 쿼리 템플릿이 올바른 사용자 DN을 반환하지 않을 수 있습니다.

다음 ldapsearch 템플릿을 사용합니다.

ldapsearch -H 'ldaps://ldap.<managed-domain>.com' -b 'DC=<managed>,DC=<domain>,DC=com' -s sub -D 'CN=<bind-user-dn>,OU=AADDC Users,DC=<managed>,DC=<domain>,DC=com' -w '<REDACTED>' '(&(objectCategory=user)(memberOf=CN=<group-name>,OU=AADDC Users,DC=<managed-domain>,DC=com))'

참고

Microsoft Entra ID Domain Services의 경우, 고유 이름의 속성은 대문자여야 합니다.

<managed-domain>이(가) 하나 이상의 하위 도메인으로 구성된 경우 각 고유 이름에 DC(domainComponent) 속성을 추가해야 합니다.

예시

<managed-domain>이(가) aadds.example.com인 경우 도메인 구성 요소는 다음과 같습니다.

DC=aadds,DC=example,DC=com

예를 들어 bind-user-dnCN=LDAP Bind User,OU=AADDC Users,DC=aadds,DC=example,DC=com이고, <managed-domain>이(가) aadds.example.com이며, group-name이(가) Atlas read only인 경우 다음 명령어를 사용합니다.

ldapsearch -H 'ldaps://ldap.aadds.example.com' -b 'DC=aadds,DC=example,DC=com' -s sub -D 'CN=LDAP Bind User,OU=AADDC Users,DC=aadds,DC=example,DC=com' -w '<REDACTED>' '(&(objectCategory=user)(memberOf=CN=Atlas read only,OU=AADDC Users,DC=aadds,DC=example,DC=com))'

참고

다른 쿼리 템플릿도 작동할 수 있습니다.

돌아가기

LDAP