Docs Menu

자체 관리 λ°°ν¬μ„œλ²„μ— λŒ€ν•œ LDAP κΆŒν•œ λΆ€μ—¬

버전 3.4 의 μƒˆλ‘œμš΄ κΈ°λŠ₯: MongoDB μ—”ν„°ν”„λΌμ΄μ¦ˆ 인증된 μ‚¬μš©μžκ°€ μ†ν•œ LDAP 그룹에 λŒ€ν•œ LDAP μ„œλ²„ 쿼리λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€. MongoDB λ°˜ν™˜λœ 각 κ·Έλ£Ή 의 고유 이름(DN)을 admin λ°μ΄ν„°λ² μ΄μŠ€ 의 역할에 λ§€ν•‘ν•©λ‹ˆλ‹€. MongoDB λ§€ν•‘λœ μ—­ν•  및 κ΄€λ ¨ κΆŒν•œμ„ 기반으둜 μ‚¬μš©μžμ—κ²Œ κΆŒν•œμ„ λΆ€μ—¬ν•©λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ LDAP κΆŒν•œ λΆ€μ—¬λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

LDAP 인증 ν”„λ‘œμ„ΈμŠ€λŠ” μ•„λž˜μ— μš”μ•½λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€:

  1. ν΄λΌμ΄μ–ΈνŠΈλŠ” MongoDB에 μ—°κ²°ν•˜κ³  μ™ΈλΆ€ 인증을 μ§€μ›ν•˜λŠ” μΈμ¦λ©”μ»€λ‹ˆμ¦˜μ„ μ‚¬μš©ν•˜μ—¬ 인증을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

    $external 인증 μ‚¬μš©μž(Kerberos, LDAP λ˜λŠ” x.509 μ‚¬μš©μž)와 ν•¨κ»˜ ν΄λΌμ΄μ–ΈνŠΈ μ„Έμ…˜ 및 인과적 일관성 보μž₯ 을 μ‚¬μš©ν•˜λ €λ©΄ μ‚¬μš©μž 이름이 10k λ°”μ΄νŠΈλ₯Ό μ΄ˆκ³Όν•  수 μ—†μŠ΅λ‹ˆλ‹€.

  2. MongoDBλŠ” security.ldap.servers둜 μ§€μ •λœ LDAP μ„œλ²„μ— security.ldap.bind.queryUser와 security.ldap.bind.queryPassword 둜 μ§€μ •λœ 자격 증λͺ…을 μ‚¬μš©ν•˜μ—¬ λ°”μΈλ”©ν•©λ‹ˆλ‹€.

    MongoDBλŠ” 기본적으둜 λ‹¨μˆœ 바인딩을 μ‚¬μš©ν•˜μ§€λ§Œ security.ldap.bind.method 및 security.ldap.bind.saslMechanismsμœΌλ‘œκ΅¬μ„±λœ 경우 sasl 바인딩을 λŒ€μ‹  μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  3. MongoDBλŠ” security.ldap.authz.queryTemplate을 μ‚¬μš©ν•˜μ—¬ LDAP 쿼리λ₯Ό κ΅¬μ„±ν•˜κ³  인증된 μ‚¬μš©μžμ˜ κ·Έλ£Ή λ…Έλ“œμ‹­μ„ LDAP μ„œλ²„μ— μΏΌλ¦¬ν•©λ‹ˆλ‹€.

    MongoDBλŠ” security.ldap.userToDNMapping μ˜΅μ…˜μœΌλ‘œ μ‚¬μš©μž 이름을 λ³€ν™˜ν•˜μ—¬ 쿼리 ν…œν”Œλ¦Ώμ„ 지원할 수 μžˆμŠ΅λ‹ˆλ‹€.

  4. LDAP μ„œλ²„λŠ” 쿼리λ₯Ό ν‰κ°€ν•˜κ³  인증된 μ‚¬μš©μžκ°€ μ†ν•œ κ·Έλ£Ή λͺ©λ‘μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.

  5. MongoDBλŠ” λ°˜ν™˜λœ 각 그룹의 고유 이름(DN)을 admin λ°μ΄ν„°λ² μ΄μŠ€μ˜ 역할에 λ§€ν•‘ν•˜μ—¬ μ„œλ²„μ—μ„œ 쑰치λ₯Ό μˆ˜ν–‰ν•  수 μžˆλŠ” κΆŒν•œμ„ μ‚¬μš©μžμ—κ²Œ λΆ€μ—¬ν•©λ‹ˆλ‹€. λ°˜ν™˜λœ κ·Έλ£Ή DN이 admin λ°μ΄ν„°λ² μ΄μŠ€μ˜ κΈ°μ‘΄ μ—­ν•  이름과 μ •ν™•νžˆ μΌμΉ˜ν•˜λŠ” 경우, MongoDBλŠ” μ‚¬μš©μžμ—κ²Œ ν•΄λ‹Ή 역할에 ν• λ‹Ήλœ μ—­ν•  및 κΆŒν•œμ„ λΆ€μ—¬ν•©λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ LDAP 인증을 μœ„ν•œ MongoDB 역할을 μ°Έμ‘°ν•˜μ„Έμš”.

  6. ν΄λΌμ΄μ–ΈνŠΈλŠ” MongoDB μ„œλ²„μ—μ„œ 인증된 μ‚¬μš©μžμ—κ²Œ λΆ€μ—¬λœ μ—­ν•  λ˜λŠ” κΆŒν•œμ΄ ν•„μš”ν•œ 쑰치λ₯Ό μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  7. ldapUserCacheInvalidationInterval둜 μ •μ˜λœ κ°„κ²©μœΌλ‘œ MongoDBλŠ” $external μΊμ‹œλ₯Ό ν”ŒλŸ¬μ‹œν•©λ‹ˆλ‹€. μ™ΈλΆ€μ—μ„œ κΆŒν•œμ΄ λΆ€μ—¬λœ μ‚¬μš©μžκ°€ μˆ˜ν–‰ν•˜λŠ” 후속 μž‘μ—…μ„ μ‹€ν–‰ν•˜κΈ° 전에 MongoDBλŠ” LDAP μ„œλ²„μ—μ„œ ν•΄λ‹Ή μ‚¬μš©μžμ˜ κ·Έλ£Ή 멀버십을 λ‹€μ‹œ νšλ“ν•©λ‹ˆλ‹€.

Docker에 λŒ€ν•œ 전체 μ„€λͺ…은 이 λ¬Έμ„œμ˜ λ²”μœ„λ₯Ό λ²—μ–΄λ‚©λ‹ˆλ‹€. 이 νŽ˜μ΄μ§€μ—μ„œλŠ” Docker에 λŒ€ν•œ 사전 지식이 μžˆλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.

이 λ¬Έμ„œμ—μ„œλŠ” MongoDB LDAP κΆŒν•œ 뢀여에 λŒ€ν•΄μ„œλ§Œ μ„€λͺ…ν•˜λ©° LDAP의 λ‹€λ₯Έ λ¦¬μ†ŒμŠ€λ₯Ό λŒ€μ²΄ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. LDAP 인증을 κ΅¬μ„±ν•˜κΈ° 전에 LDAP 및 κ΄€λ ¨ 주제λ₯Ό μ² μ €νžˆ μˆ™μ§€ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

MongoDBλŠ” MongoDB λ°°μΉ˜μ— λŒ€ν•΄ LDAP κΆŒν•œ λΆ€μ—¬μ˜ 졜적 ꡬ성을 μœ„ν•œ μ „λ¬Έ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

MongoDBλŠ” λ‹€μŒκ³Ό 같은 κΆŒν•œ λΆ€μ—¬ λ°©λ²•μœΌλ‘œ LDAP 인증을 μ§€μ›ν•©λ‹ˆλ‹€:

이 κ΅¬μ„±μ—μ„œ MongoDBλŠ” LDAP, X.509 λ˜λŠ” Kerberos κΆŒν•œ λΆ€μ—¬λ₯Ό μ‚¬μš©ν•˜μ—¬ ν΄λΌμ΄μ–ΈνŠΈ 연결을 μΈμ¦ν•©λ‹ˆλ‹€.

인증/κΆŒν•œ λΆ€μ—¬λ₯Ό μœ„ν•΄ LDAP μ„œλ²„μ— μ—°κ²°ν•  λ•Œ MongoDBλŠ” 기본적으둜 λ‹€μŒμ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

  • μ‹€ν–‰ν•˜λ©΄ μ—°κ²° 풀링을 μ‚¬μš©ν•©λ‹ˆλ‹€:

    • λ˜λŠ”

    • λ₯Ό μ‚¬μš©ν•˜μ—¬ MongoDB Enterprise λ°”μ΄λ„ˆλ¦¬κ°€ libldap_rμ—λŒ€ν•΄ λ§ν¬λ˜λŠ” Linuxμ—μ„œ.

  • μ‹€ν–‰ν•˜λ©΄ μ—°κ²° 풀링을 μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€:

    • MongoDB Enterprise λ°”μ΄λ„ˆλ¦¬λŠ” Linuxμ—μ„œ libldap에 λŒ€ν•΄ λ§ν¬λ©λ‹ˆλ‹€.

μ—°κ²° 풀링 λ™μž‘μ„ λ³€κ²½ν•˜λ €λ©΄ ldapUseConnectionPool λ§€κ°œλ³€μˆ˜λ₯Ό μ—…λ°μ΄νŠΈν•˜μ‹­μ‹œμ˜€.

libldap (예: RHELμ—μ„œ μ‹€ν–‰λ˜λŠ” 경우) 에 μ—°κ²°λœ MongoDB 4.2 μ—”ν„°ν”„λΌμ΄μ¦ˆ λ°”μ΄λ„ˆλ¦¬μ˜ 경우 libldap μ•‘μ„ΈμŠ€κ°€ λ™κΈ°ν™”λ˜λ―€λ‘œ 일뢀 μ„±λŠ₯/λŒ€κΈ° μ‹œκ°„ λΉ„μš©μ΄ λ°œμƒν•©λ‹ˆλ‹€.

0}에 μ—°κ²°λœ MongoDB 4.2 Enterprise λ°”μ΄λ„ˆλ¦¬μ˜ libldap_r 경우 이전 MongoDB 버전과 λ™μž‘μ΄ λ³€κ²½λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

LDAP κΆŒν•œ λΆ€μ—¬λ₯Ό μ‚¬μš©ν•˜λ©΄ LDAP μ„œλ²„μ—μ„œ μ‚¬μš©μž 생성 및 관리가 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€. MongoDBλ₯Ό μ‚¬μš©ν•˜λ €λ©΄ admin λ°μ΄ν„°λ² μ΄μŠ€μ— 각 μ—­ν• μ˜ 이름이 LDAP 그룹의 고유 이름(DN)κ³Ό μ •ν™•νžˆ μΌμΉ˜ν•˜λŠ” 역할을 생성해야 ν•©λ‹ˆλ‹€. μ΄λŠ” $external λ°μ΄ν„°λ² μ΄μŠ€μ— μ‚¬μš©μžλ₯Ό 생성해야 ν•˜λŠ” MongoDB κ΄€λ¦¬ν˜• κΆŒν•œ 뢀여와 λŒ€μ‘°λ©λ‹ˆλ‹€.

MongoDB μ„œλ²„μ—μ„œ 역할을 κ΄€λ¦¬ν•˜λ €λ©΄, μ—­ν•  관리 κΆŒν•œμ„ κ°€μ§„adminλ°μ΄ν„°λ² μ΄μŠ€ μ—­ν• κ³Ό μ—°κ΄€λœ κ·Έλ£Ή 멀버인 μ‚¬μš©μžλ‘œ 인증해야 ν•©λ‹ˆλ‹€. μ΄λŠ” userAdminκ³Ό 같은 역할을 톡해 μ œκ³΅λ©λ‹ˆλ‹€. LDAP κ·Έλ£Ή DN에 ν•΄λ‹Ήν•˜λŠ” 역할을 μƒμ„±ν•˜κ±°λ‚˜ μ—…λ°μ΄νŠΈν•˜μ—¬ ν•΄λ‹Ή 그룹의 ꡬ성원이 μžˆλŠ” μ‚¬μš©μžκ°€ μ μ ˆν•œ μ—­ν•  및 κΆŒν•œμ„ 받을 수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ¦¬μžμš© LDAP κ·Έλ£Ήμ—λŠ” μ–΄λ“œλ―Ό μ—­ν•  및 κΆŒν•œμ΄ μžˆλŠ” 역할이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. λ§ˆμΌ€νŒ… λ˜λŠ” 뢄석 μ‚¬μš©μžλ₯Ό μœ„ν•œ LDAP κ·Έλ£Ήμ—λŠ” νŠΉμ • λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 읽기 κΆŒν•œλ§Œ μžˆλŠ” 역할이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ€‘μš”

ν•΄λ‹Ή LDAP 그룹에 λŒ€ν•œ 역할을 ꡬ성할 λ•Œ ν•΄λ‹Ή 그룹의 ꡬ성원 μžκ²©μ„ κ°€μ§„ λͺ¨λ“  μ‚¬μš©μžκ°€ κ΅¬μ„±λœ μ—­ν•  및 κΆŒν•œμ„ 받을 수 μžˆμœΌλ‹ˆ μ£Όμ˜ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€. MongoDB μ—­ν• , LDAP κ·Έλ£Ή λ˜λŠ” κ·Έλ£Ή 멀버십을 ꡬ성할 λ•ŒλŠ” μ΅œμ†Œ κΆŒν•œ 원칙을 μ μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

μ—­ν•  관리 κΆŒν•œμ΄ μžˆλŠ” 역할이 μ‘΄μž¬ν•˜μ§€ μ•Šκ³  μ΄λŸ¬ν•œ κΆŒν•œμ΄ μ—†λŠ”$external μ‚¬μš©μžκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©΄ LDAP μ„œλ²„μ—μ„œ κ·Έλ£Ή λ˜λŠ” κ·Έλ£Ή λ©€λ²„μ‹­μ˜ μΆ”κ°€ λ˜λŠ” 변경을 λ°˜μ˜ν•˜λ„λ‘ μƒˆ μ—­ν• μ΄λ‚˜ κΈ°μ‘΄ 역할을 λ³€κ²½ν•  수 μ—†μœΌλ―€λ‘œ 사싀상 μ‚¬μš©μž 관리λ₯Ό μˆ˜ν–‰ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

MongoDB μ„œλ²„μ—μ„œ 역할을 관리할 수 μ—†λŠ” μ‹œλ‚˜λ¦¬μ˜€λ₯Ό ν•΄κ²°ν•˜λ €λ©΄ λ‹€μŒ 절차λ₯Ό μˆ˜ν–‰ν•˜μ„Έμš”.

  1. κΆŒν•œ λΆ€μ—¬ 및 LDAP 인증 없이 MongoDB μ„œλ²„ λ‹€μ‹œ μ‹œμž‘

  2. 이름이 μ μ ˆν•œ LDAP κ·Έλ£Ή 고유 이름(Distinguished Name)에 ν•΄λ‹Ήν•˜λŠ” admin λ°μ΄ν„°λ² μ΄μŠ€μ— 역할을 λ§Œλ“­λ‹ˆλ‹€. κ·Έλ£Ή DN을 선택할 λ•Œ λ°μ΄ν„°λ² μ΄μŠ€ 관리에 κ°€μž₯ μ ν•©ν•œμ§€ κ³ λ €ν•˜μ‹­μ‹œμ˜€.

  3. 인증 및 LDAP κΆŒν•œ λΆ€μ—¬λ₯Ό 톡해 MongoDB Serverλ₯Ό λ‹€μ‹œ μ‹œμž‘ν•©λ‹ˆλ‹€.

  4. μƒμ„±λœ 관리 역할에 ν•΄λ‹Ήν•˜λŠ” κ·Έλ£Ή λ©€λ²„λ‘œμ„œ μΈμ¦ν•©λ‹ˆλ‹€.

LDAPλ₯Ό μ‚¬μš©ν•˜μ—¬ κΆŒν•œμ„ λΆ€μ—¬ν•˜λŠ” MongoDB μ„œλ²„λŠ” $external λ°μ΄ν„°λ² μ΄μŠ€μ˜ κΈ°μ‘΄ μ‚¬μš©μžμ—κ²Œ μ•‘μ„ΈμŠ€ν•  수 μ—†μŠ΅λ‹ˆλ‹€. $externalλ°μ΄ν„°λ² μ΄μŠ€μ— κΈ°μ‘΄ μ‚¬μš©μžκ°€ μžˆλŠ” 경우 계속 μ•‘μ„ΈμŠ€ν•  수 μžˆλ„λ‘ ν•˜λ €λ©΄ λ°μ΄ν„°λ² μ΄μŠ€μ˜ 각 μ‚¬μš©μžμ— λŒ€ν•΄ λ‹€μŒ μš”κ΅¬ 사항$external을 μΆ©μ‘±ν•΄μ•Ό ν•©λ‹ˆλ‹€:

  • μ‚¬μš©μžκ°€ LDAP μ„œλ²„μ— ν•΄λ‹Ή μ‚¬μš©μž 객체λ₯Ό κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.

  • μ‚¬μš©μž κ°μ²΄λŠ” μ μ ˆν•œ LDAP 그룹의 멀버십을 κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€

  • MongoDBλŠ” μ‚¬μš©μžμ˜ LDAP 그룹을 λ‚˜νƒ€λ‚΄λŠ” admin λ°μ΄ν„°λ² μ΄μŠ€μ— 역할을 κ°€μ§€κ³  있으며, 이λ₯Ό 톡해 λΆ€μ—¬λœ μ—­ν• κ³Ό κΆŒν•œμ€$external 이 μ•„λ‹Œ μ‚¬μš©μžμ—κ²Œ λΆ€μ—¬λœ 것과 λ™μΌν•©λ‹ˆλ‹€.

$external λ°μ΄ν„°λ² μ΄μŠ€μ— μ—†λŠ” μ‚¬μš©μžκ°€ μ•‘μ„ΈμŠ€ν•  수 μžˆλ„λ‘ 계속 ν—ˆμš©ν•˜λ €λ©΄ authenticationMechanisms 맀개 λ³€μˆ˜μ— SCRAM-SHA-1 및/λ˜λŠ” SCRAM-SHA-256κ°€ μ μ ˆν•˜κ²Œ ν¬ν•¨λ˜μ–΄ μžˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€. λ˜λŠ” ν•΄λ‹Ή μ‚¬μš©μžλ₯Ό LDAP κΆŒν•œ λΆ€μ—¬λ‘œ μ „ν™˜ν•˜κΈ° μœ„ν•΄ μœ„μ— λ‚˜μ—΄λœ μš”κ΅¬ 사항을 μ μš©ν•©λ‹ˆλ‹€.

볡제본 μ„ΈνŠΈμ˜ 경우, 프라이머리λ₯Ό κ΅¬μ„±ν•˜κΈ° 전에 λ¨Όμ € 세컨더리 및 μ€‘μž¬μž 멀버에 λŒ€ν•œ LDAP κΆŒν•œ λΆ€μ—¬λ₯Ό κ΅¬μ„±ν•©λ‹ˆλ‹€. μ΄λŠ” μƒ€λ“œ 볡제본 μ„ΈνŠΈ λ˜λŠ” config μ„œλ²„ 볡제본 μ„ΈνŠΈμ—λ„ μ μš©λ©λ‹ˆλ‹€. ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ 볡제본 μ„ΈνŠΈ 멀버λ₯Ό μ„€μ •ν•˜μ—¬ λŒ€λ‹€μˆ˜μ˜ 멀버가 μ“°κΈ° κ°€μš©μ„±μ„ μœ μ§€ν•˜λ„λ‘ ν•©λ‹ˆλ‹€.

μƒ€λ”©λœ ν΄λŸ¬μŠ€ν„°λŠ” ν΄λŸ¬μŠ€ν„° μˆ˜μ€€ μ‚¬μš©μžλ₯Ό μœ„ν•΄ config μ„œλ²„ LDAP κΆŒν•œμ„ ꡬ성해야 ν•©λ‹ˆλ‹€. ν•„μš”ν•œ 경우 각 μƒ€λ“œμ—μ„œ μƒ€λ“œ 둜컬 μ‚¬μš©μžλ₯Ό μœ„ν•œ LDAP κΆŒν•œμ„ ꡬ성할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

LDAP κΆŒν•œ λΆ€μ—¬λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ λ‹€μŒ 섀정을 ꡬ성해야 ν•©λ‹ˆλ‹€.

운영 체제 라이브러리λ₯Ό 톡해 LDAPλ₯Ό κΆŒν•œ 뢀여에 μ‚¬μš©ν•˜λ €λ©΄, mongod λ˜λŠ” mongos ꡬ성 νŒŒμΌμ—μ„œ νŠΉμ • 섀정을 μ§€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μ˜΅μ…˜
μ„€λͺ…
ν•„μˆ˜ 사항

λ”°μ˜΄ν‘œλ‘œ 묢은 μ‰Όν‘œλ‘œ κ΅¬λΆ„λœ host[:port] ν˜•μ‹μ˜ LDAP μ„œλ²„ λͺ©λ‘μž…λ‹ˆλ‹€.

λ„€

RFC4515 및 RFC4516 μ‚¬μš©μžκ°€ μ†ν•œ LDAP 그룹을 κ°€μ Έμ˜€κΈ° μœ„ν•΄ MongoDBμ—μ„œ μ‹€ν–‰ν•˜λŠ” LDAP ν˜•μ‹μ˜ 쿼리 URL ν…œν”Œλ¦Ώμž…λ‹ˆλ‹€. μΏΌλ¦¬λŠ” servers 에 μ§€μ •λœ ν•˜λ‚˜ μ΄μƒμ˜ 호슀트λ₯Ό κΈ°μ€€μœΌλ‘œ ν•©λ‹ˆλ‹€.

ν…œν”Œλ¦Ώμ—μ„œ λ‹€μŒ 토큰을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • {USER}
    인증된 μ‚¬μš©μž 이름 λ˜λŠ” transformed μ‚¬μš©μž 이름을 LDAP 쿼리둜 λŒ€μ²΄ν•©λ‹ˆλ‹€.
  • {PROVIDED_USER}
    인증 λ˜λŠ” LDAP λ³€ν™˜ 전에 제곡된 μ‚¬μš©μž 이름을 LDAP 쿼리둜 λŒ€μ²΄ν•©λ‹ˆλ‹€.

mongod 만 이 λ§€κ°œλ³€μˆ˜λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€. mongos λŠ” configμ„œλ²„μ— κ΅¬μ„±λœ λŒ€λ‘œ 이 섀정을 μ°Έμ‘°ν•©λ‹ˆλ‹€.

λ„€

LDAP μ„œλ²„μ— μ—°κ²°ν•˜κ³  μž‘μ—…κ³Ό 쿼리λ₯Ό μ‹€ν–‰ν•  λ•Œ MongoDB Serverκ°€ λ°”μΈλ”©ν•˜λŠ” IDμž…λ‹ˆλ‹€.

queryPassword 와 ν•¨κ»˜ μ‚¬μš©ν•˜μ„Έμš”.

μ§€μ •ν•œ μ‚¬μš©μžλŠ” κ΅¬μ„±λœ queryTemplateμ—μ„œ μƒμ„±λœ LDAP 쿼리λ₯Ό 지원할 수 μžˆλŠ” μ μ ˆν•œ κΆŒν•œμ΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

λ„€

queryUser μ‚¬μš© μ‹œ LDAP μ„œλ²„μ— λ°”μΈλ”©ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” λΉ„λ°€λ²ˆν˜Έμž…λ‹ˆλ‹€.

λ„€

mongod λ˜λŠ” mongos κ°€ LDAP μ„œλ²„μ— μΈμ¦ν•˜κ±°λ‚˜ λ°”μΈλ“œν•˜λŠ” 데 μ‚¬μš©ν•˜λŠ” 방법을 μ§€μ •ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. security.ldap.bind.saslMechanisms에 μ •μ˜λœ SASL ν”„λ‘œν† μ½œ 쀑 ν•˜λ‚˜λ₯Ό μ‚¬μš©ν•˜λ„λ‘ sasl μ§€μ •ν•©λ‹ˆλ‹€ .

기본값은 simpleμž…λ‹ˆλ‹€.

μ•„λ‹ˆμš”, LDAP μ„œλ²„μ— λ°”μΈλ”©ν•˜κΈ° μœ„ν•΄ sasl μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” ν•œ.

2} λ˜λŠ” mongos κ°€ LDAP μ„œλ²„λ₯Ό μΈμ¦ν•˜κ±°λ‚˜ mongod 바인딩할 λ•Œ μ‚¬μš©ν•  수 μžˆλŠ” SASL λ©”μ»€λ‹ˆμ¦˜μ„ μ§€μ •ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. MongoDB와 LDAP μ„œλ²„λŠ” ν•˜λ‚˜ μ΄μƒμ˜ SASL λ©”μ»€λ‹ˆμ¦˜μ— λ™μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

기본값은 DIGEST-MD5μž…λ‹ˆλ‹€.

μ•„λ‹ˆμš”, methodλ₯Ό sasl둜 μ„€μ •ν•˜μ§€ μ•ŠλŠ” 이상, λ‹€λ₯Έ λ˜λŠ” 좔가적인 SASL λ©”μ»€λ‹ˆμ¦˜μ€ ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

Windows MongoDB λ°°ν¬λŠ” LDAP μ„œλ²„μ— μ—°κ²°ν•  λ•Œμ™€ λ§ˆμ°¬κ°€μ§€λ‘œ 인증 λ˜λŠ” 바인딩을 μœ„ν•΄ queryUser 및 queryPassword λŒ€μ‹  운영 체제 자격 증λͺ…을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ•„λ‹ˆμš”, queryUser와 queryPasswordλ₯ΌλŒ€μ²΄ν•˜μ§€ μ•ŠλŠ” ν•œ.

queryTemplate에 따라, 인증된 ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μš©μž 이름을 LDAP 쿼리 URL을 μ§€μ›ν•˜λ„λ‘ λ³€ν™˜ν•  ν•„μš”κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. userToDNMapping λ₯Ό 톡해 MongoDBλŠ” λ“€μ–΄μ˜€λŠ” μ‚¬μš©μž 이름을 λ³€ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μš©μž 이름을 LDAP DN으둜 λ³€ν™˜ν•΄μ•Ό ν•˜λŠ” κ²½μš°κ°€ μ•„λ‹ˆλ©΄ NOμž…λ‹ˆλ‹€.

LDAP κΆŒν•œ 뢀여을(λ₯Ό) κ΅¬μ„±ν–ˆμœΌλ©΄ mongod λ˜λŠ” mongosλ₯Ό λ‹€μ‹œ μ‹œμž‘ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이제 μ„œλ²„λŠ” X.509, Kerberos λ˜λŠ” LDAP을 μ‚¬μš©ν•˜μ—¬ ν΄λΌμ΄μ–ΈνŠΈ 연결을 μΈμ¦ν•©λ‹ˆλ‹€.

MongoDBλŠ” security.ldap.authz.queryTemplate(을)λ₯Ό μ‚¬μš©ν•˜μ—¬ RFC4516 ν˜•μ‹μ˜ LDAP 쿼리 URL을 μƒμ„±ν•©λ‹ˆλ‹€. ν…œν”Œλ¦Ώμ—μ„œλŠ” λ‹€μŒ 쀑 ν•˜λ‚˜λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • {USER} ν”Œλ ˆμ΄μŠ€ν™€λ”λ₯Ό μ‚¬μš©ν•˜μ—¬ 인증된 μ‚¬μš©μž 이름을 LDAP 쿼리 URL둜 λŒ€μ²΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€. MongoDBκ°€ userToDNMapping 을 μ‚¬μš©ν•˜μ—¬ μ‚¬μš©μž 이름을 λ³€ν™˜ν•œ 경우 MongoDBλŠ” LDAP 쿼리 URL을 ꡬ성할 λ•Œ {USER} 토큰을 λ³€ν™˜λœ μ‚¬μš©μž μ΄λ¦„μœΌλ‘œ λ°”κΏ‰λ‹ˆλ‹€.

  • {PROVIDED_USER} 인증 λ˜λŠ” LDAP λ³€ν™˜ 전에 제곡된 μ‚¬μš©μž 이름은 LDAP 쿼리둜 λŒ€μ²΄ν•˜λŠ” 자리 ν‘œμ‹œμžμž…λ‹ˆλ‹€.

μ‚¬μš©μž 그룹을 μ‘°νšŒν•˜κΈ° μœ„ν•œ 쿼리 ν…œν”Œλ¦Ώμ„ λ””μžμΈν•˜μ„Έμš”.

μ˜ˆμ‹œ

λ‹€μŒ 쿼리 ν…œν”Œλ¦Ώμ€ LDAP μ‚¬μš©μž 객체의 memberOf 속성에 λ‚˜μ—΄λœ λͺ¨λ“  그룹을 λ°˜ν™˜ν•©λ‹ˆλ‹€. 이 μΏΌλ¦¬λŠ” memberOf 속성이 μ‘΄μž¬ν•œλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€. νŠΉμ • LDAP λ°°ν¬μ—μ„œλŠ” κ·Έλ£Ή 멀버십을 μΆ”μ ν•˜λŠ” 데 λ‹€λ₯Έ μ†μ„±μ΄λ‚˜ 방법둠을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ 이 μΏΌλ¦¬μ—μ„œλŠ” μ‚¬μš©μžκ°€ 전체 LDAP DN을 μ‚¬μš©μž μ΄λ¦„μœΌλ‘œ μ‚¬μš©ν•˜μ—¬ μΈμ¦ν•œλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.

"{USER}?memberOf?base"

LDAP 쿼리 URL은 RFC4516에 μ •μ˜λœ ν˜•μ‹μ„ μ€€μˆ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

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

RFC4516μ—μ„œ 인용된 λŒ€λ‘œ 각 ꡬ성 μš”μ†Œμ˜ μ •μ˜λ₯Ό κ³ λ €ν•˜μ„Έμš”.

dn은 RFC4514에 μ„€λͺ…λœ λ¬Έμžμ—΄ ν˜•μ‹μ„ μ‚¬μš©ν•˜λŠ” LDAP 고유 μ΄λ¦„μž…λ‹ˆλ‹€. μ΄λŠ” LDAP κ²€μƒ‰μ˜ κΈ°λ³Έ 객체 λ˜λŠ” 비검색 μž‘μ—…μ˜ λŒ€μƒμ„ μ‹λ³„ν•©λ‹ˆλ‹€.

attributes ꡬ성은 ν•­λͺ©μ—μ„œ λ°˜ν™˜ν•΄μ•Ό ν•˜λŠ” νŠΉμ„±μ„ λ‚˜νƒ€λ‚΄λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.

scope ꡬ성은 μ§€μ •λœ LDAP μ„œλ²„μ—μ„œ μˆ˜ν–‰ν•  검색 λ²”μœ„λ₯Ό μ§€μ •ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. ν—ˆμš©λ˜λŠ” λ²”μœ„λŠ” κΈ°λ³Έ 객체 κ²€μƒ‰μ˜ 경우 'base', 단일 μˆ˜μ€€ κ²€μƒ‰μ˜ 경우 'one' λ˜λŠ” ν•˜μœ„ 트리 κ²€μƒ‰μ˜ 경우 'sub'μž…λ‹ˆλ‹€.

filterλŠ” 검색 쀑에 μ§€μ •λœ λ²”μœ„ λ‚΄μ˜ ν•­λͺ©μ— μ μš©ν•  검색 ν•„ν„°λ₯Ό μ§€μ •ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이 ν˜•μ‹μ€ [RFC4515]에 μ§€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

extensions ꡬ문은 LDAP URL에 ν™•μž₯μ„± λ©”μ»€λ‹ˆμ¦˜μ„ μ œκ³΅ν•˜μ—¬ URL의 κΈ°λŠ₯을 ν–₯ν›„ ν™•μž₯ν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.

쿼리에 attribute이 ν¬ν•¨λœ 경우 MongoDBλŠ” 쿼리가 이 μ—”ν„°ν‹°κ°€ μ†ν•œ DN을 κ²€μƒ‰ν•œλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.

쿼리에 속성이 ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ©΄ MongoDBλŠ” 쿼리가 μ‚¬μš©μžκ°€ μ†ν•œ λͺ¨λ“  μ—”ν„°ν‹°λ₯Ό κ²€μƒ‰ν•œλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.

MongoDBλŠ” ν˜„μž¬ LDAP 쿼리에 μ§€μ •λœ λͺ¨λ“  ν™•μž₯자λ₯Ό λ¬΄μ‹œν•©λ‹ˆλ‹€.

μ€‘μš”

RFC4516 λ˜λŠ” LDAP 쿼리 URL ꡬ성에 λŒ€ν•œ 전체적인 μ„€λͺ…은 이 λ¬Έμ„œμ˜ λ²”μœ„λ₯Ό λ²—μ–΄λ‚©λ‹ˆλ‹€.

λ‹€μŒ νŠœν† λ¦¬μ–Όμ—λŠ” 운영 체제 LDAP 라이브러리λ₯Ό 톡해 LDAP μ„œλ²„μ— μ—°κ²°ν•˜λŠ” μ ˆμ°¨κ°€ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

κΆŒν•œ λΆ€μ—¬λ₯Ό μœ„ν•΄ LDAPλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 mongosh(을)λ₯Ό 톡해 μ—°κ²°ν•˜λŠ” μ‚¬μš©μžλŠ” λ‹€μŒμ„ μˆ˜ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€.

  • --authenticationDatabase(을)λ₯Ό $external(으)둜 μ„€μ •ν•©λ‹ˆλ‹€.

  • μ μ ˆν•œ 인증 λ©”μ»€λ‹ˆμ¦˜μ— 맞게 --authenticationMechanism을 μ„€μ •ν•©λ‹ˆλ‹€.

    LDAP 인증을 μ‚¬μš©ν•˜λŠ” 경우, 이λ₯Ό PLAIN 으둜 μ„€μ •ν•˜κ³ 

    Kerberos μΈμ¦μ‚¬μš©ν•˜λŠ” 경우, GSSAPI 둜 μ„€μ •ν•©λ‹ˆλ‹€.

    x.509λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 이 값을 MONGODB-X.509둜 μ„€μ •ν•©λ‹ˆλ‹€.

  • --username security.ldap.authz.queryTemplate λ˜λŠ” κ΅¬μ„±λœ security.ldap.userToDNMapping ν…œν”Œλ¦Ώμ„ μ€€μˆ˜ν•˜λŠ” μ‚¬μš©μž μ΄λ¦„μœΌλ‘œ μ„€μ •ν•©λ‹ˆλ‹€.

  • --passwordλ₯Ό μ μ ˆν•œ λΉ„λ°€λ²ˆν˜Έλ‘œ μ„€μ •ν•©λ‹ˆλ‹€.

배포 μ„œλ²„μ™€ κ΄€λ ¨λœ λ‹€λ₯Έ μ˜΅μ…˜κ³Ό ν•¨κ»˜ MongoDB μ„œλ²„μ˜ --host 및 --port(을)λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, λ‹€μŒ μž‘μ—…μ€ LDAP 인증 및 κΆŒν•œ λΆ€μ—¬λ₯Ό 톡해 μ‹€ν–‰ 쀑인 MongoDB Serverλ₯Ό μΈμ¦ν•©λ‹ˆλ‹€.

mongosh --username alice@dba.example.com --password --authenticationDatabase '$external' --authenticationMechanism "PLAIN" --host "mongodb.example.com" --port 27017

-password λͺ…령쀄 μ˜΅μ…˜μ— λΉ„λ°€λ²ˆν˜Έλ₯Ό μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ mongosh μ—μ„œ λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ν•˜λΌλŠ” λ©”μ‹œμ§€λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.

μ€‘μš”

셸이 $external을 λ³€μˆ˜λ‘œ ν•΄μ„ν•˜μ§€ λͺ»ν•˜λ„둝 ν•˜λ €λ©΄ $external 인수λ₯Ό ν°λ”°μ˜΄ν‘œκ°€ μ•„λ‹Œ μž‘μ€λ”°μ˜΄ν‘œλ‘œ λ¬Άμ–΄μ•Ό ν•©λ‹ˆλ‹€.

MongoDBλŠ” LDAP queryμ—μ„œ λ°˜ν™˜λœ 각 λ°˜ν™˜λœ κ·Έλ£Ή DN(고유 이름)을 admin λ°μ΄ν„°λ² μ΄μŠ€μ˜ 역할에 λ§€ν•‘ν•©λ‹ˆλ‹€.

λ§Œμ•½ MongoDBκ°€ DN이 κΈ°μ‘΄ μ—­ν• μ˜ 이름과 μ •ν™•νžˆ μΌμΉ˜ν•˜λŠ” 그룹을 μ–»λŠ”λ‹€λ©΄, 인증된 μ‚¬μš©μžμ—κ²Œ ν•΄λ‹Ή μ—­ν• κ³Ό κ΄€λ ¨λœ κΆŒν•œμ„ λΆ€μ—¬ν•©λ‹ˆλ‹€. MongoDBκ°€ λ°˜ν™˜λœ κ·Έλ£Ή 쀑 μ–΄λŠ 것도 역할에 λ§€ν•‘ν•  수 μ—†λ‹€λ©΄, μ‚¬μš©μžμ—κ²ŒλŠ” μ–΄λ– ν•œ κΆŒν•œλ„ λΆ€μ—¬λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ°Έκ³ 

LDAP 및 Kerberos 인증은 일반적으둜 $external λ°μ΄ν„°λ² μ΄μŠ€μ— μ‚¬μš©μžλ₯Ό λ§Œλ“€μ–΄μ•Ό ν•©λ‹ˆλ‹€. κΆŒν•œ 뢀여에도 LDAPλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 $external λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ‚¬μš©μžλ₯Ό 생성할 ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€. admin λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ μ ˆν•œ 역할을 μƒμ„±ν•˜κΈ°λ§Œ ν•˜λ©΄ λ©λ‹ˆλ‹€. μ‚¬μš©μžλŠ” μ—¬μ „νžˆ $external λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•΄ μΈμ¦ν•©λ‹ˆλ‹€.

μ€‘μš”

κΆŒν•œ 뢀여에 LDAPλ₯Ό μ‚¬μš© 쀑이고 LDAP κ·Έλ£Ή DN에 RFC4514 μ΄μŠ€μΌ€μ΄ν”„ μ‹œν€€μŠ€κ°€ ν¬ν•¨λœ 경우 admin λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ§Œλ“œλŠ” 역할도 RFC4514에 따라 μ΄μŠ€μΌ€μ΄ν”„ μ²˜λ¦¬ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μ˜ˆμ‹œ

λ°μ΄ν„°λ² μ΄μŠ€μ— λ‹€μŒκ³Ό 같은 역할이 admin λ°μ΄ν„°λ² μ΄μŠ€μ— κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€:

{
role: "CN=dba,CN=Users,DC=example,DC=com",
privileges: [],
roles: [ "dbAdminAnyDatabase", "clusterAdmin" ]
}
{
role: "CN=analytics,CN=Users,DC=example,DC=com"
privileges: [],
roles: [
{ role : "read", db : "web_statistics" },
{ role : "read", db : "user_statistics" }
]
}

$external λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•΄ μ‚¬μš©μž alice@dba.example.comλ₯Ό μΈμ¦ν•œ ν›„ MongoDB μ„œλ²„λŠ” κ΅¬μ„±λœ query templateμ—μ„œ νŒŒμƒλœ 쿼리λ₯Ό μˆ˜ν–‰ν•˜μ—¬ 인증된 μ‚¬μš©μžλ₯Ό λ©€λ²„λ‘œ ν¬ν•¨ν•˜λŠ” 그룹을 κ²€μƒ‰ν•©λ‹ˆλ‹€. 이 μ˜ˆμ‹œμ—μ„œ MongoDB μ„œλ²„λŠ” μ‚¬μš©μžμ— λŒ€ν•΄ λ‹€μŒ κ·Έλ£Ή DN을 κ²€μƒ‰ν•©λ‹ˆλ‹€.

dn:CN=dba,CN=Users,dc=example,dc=com
dn:CN=admin,CN=Users,dc=example,dc=com

MongoDBλŠ” μ΄λŸ¬ν•œ κ·Έλ£Ή DN을 admin λ°μ΄ν„°λ² μ΄μŠ€μ˜ 역할에 λ§€ν•‘ν•©λ‹ˆλ‹€. 첫 번째 κ·Έλ£Ή DN은 첫 번째 μ—­ν• κ³Ό μΌμΉ˜ν•˜λ©°, MongoDBλŠ” 인증된 μ‚¬μš©μžμ—κ²Œ κ·Έ μ—­ν• κ³Ό κΆŒν•œμ„ λΆ€μ—¬ν•©λ‹ˆλ‹€. 두 번째 κ·Έλ£Ή DN은 μ„œλ²„μ˜ μ–΄λ– ν•œ 역할과도 μΌμΉ˜ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ, MongoDBλŠ” 좔가적인 κΆŒν•œμ„ λΆ€μ—¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μƒˆ μ‚¬μš©μž bob@analytics.example.com 이 $external λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•΄ μΈμ¦ν•©λ‹ˆλ‹€. MongoDB μ„œλ²„λŠ” 쿼리 ν…œν”Œλ¦Ώμ— 제곡된 μ‚¬μš©μž 이름을 μ‚¬μš©ν•˜μ—¬ 쿼리 ν”„λ‘œμ„ΈμŠ€λ₯Ό λ°˜λ³΅ν•©λ‹ˆλ‹€. 이 μ˜ˆμ‹œμ—μ„œ MongoDB μ„œλ²„λŠ” μ‚¬μš©μžμ— λŒ€ν•΄ λ‹€μŒ κ·Έλ£Ή DN을 κ²€μƒ‰ν•©λ‹ˆλ‹€.

dn:cn=analytics,CN=Users,dc=example,dc=com

MongoDBλŠ” μ΄λŸ¬ν•œ κ·Έλ£Ή DN을 admin λ°μ΄ν„°λ² μ΄μŠ€μ˜ 역할에 λ§€ν•‘ν•˜κ³  인증된 μ‚¬μš©μžμ—κ²Œ 두 번째 μ—­ν• μ˜ μ—­ν•  및 κΆŒν•œμ„ λΆ€μ—¬ν•©λ‹ˆλ‹€.

μƒˆ μ‚¬μš©μž workstation@guest.example.com 이 $external λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•΄ μΈμ¦ν•©λ‹ˆλ‹€. MongoDB μ„œλ²„λŠ” 쿼리 ν…œν”Œλ¦Ώμ— 제곡된 μ‚¬μš©μž 이름을 μ‚¬μš©ν•˜μ—¬ 쿼리 ν”„λ‘œμ„ΈμŠ€λ₯Ό λ°˜λ³΅ν•©λ‹ˆλ‹€. 이 μ˜ˆμ‹œμ—μ„œ MongoDB μ„œλ²„λŠ” μ‚¬μš©μžμ— λŒ€ν•΄ λ‹€μŒ κ·Έλ£Ή DN을 κ²€μƒ‰ν•©λ‹ˆλ‹€.

dn:cn=guest,CN=Users,dc=example,dc=com

MongoDBλŠ” 그룹을 admin λ°μ΄ν„°λ² μ΄μŠ€μ˜ 역할에 λ§€ν•‘ν•˜κ³ , μΌμΉ˜ν•˜λŠ” 역할이 μ—†κΈ° λ•Œλ¬Έμ— μ‚¬μš©μžμ—κ²Œ μΆ”κ°€ κΆŒν•œμ„ λΆ€μ—¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.