Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

Configurar autenticación LDAP para un Clúster Único

MongoDB Enterprise supports:

  • Puede reenviar solicitudes de autenticación a un servicio de Protocolo Ligero de Acceso a Directorios (LDAP).

  • Enlace simple y SASL a servidores LDAP. MongoDB Enterprise puede enlazarse a un servidor LDAP a través de saslauthd o mediante las bibliotecas del sistema operativo.

Para obtener más información, consulta las secciones autenticación por Proxy LDAP y autorizacion LDAP en la documentación de MongoDB Server.

Puede usar el operador de Kubernetes para configurar LDAP para autenticar sus aplicaciones cliente que se conectan a sus implementaciones de MongoDB. Esta guía describe cómo configurar la autenticación LDAP desde aplicaciones cliente hasta tus implementaciones de MongoDB.

Nota

No puedes asegurar una instancia autónoma de MongoDB en un clúster de Kubernetes.

  • Para configurar LDAP en CustomResourceDefinitions, use los parámetros en spec.security.authentication.ldap y otras configuraciones de seguridad LDAP específicas del MongoDB Agent, a partir de la especificación de recurso del Kubernetes operador MongoDB. Los procedimientos en esta sección describen la configuración requerida y ofrecen ejemplos de configuración de LDAP.

  • Para mejorar la seguridad, considere implementar un set de réplicas con cifrado TLS o un clúster fragmentado con cifrado TLS. El cifrado con TLS es opcional. Por defecto, el tráfico de LDAP se envía como texto sin formato. Esto significa que el nombre de usuario y la contraseña están expuestos a amenazas de red. Muchos servicios de directorio modernos, como Microsoft Active Directory, requieren conexiones cifradas. Considera usar LDAP cifrado sobre TLS para cifrar las solicitudes de autenticación en tus implementaciones de Kubernetes Operator MongoDB.

Antes de configurar la autenticación LDAP para tus implementaciones de MongoDB, completa las siguientes tareas:

  • Asegúrate de implementar el recurso de base de datos MongoDB Enterprise. Las bases de datos MongoDB Community no admiten la autenticación LDAP.

  • Implementa el set de réplicas o implementa el clúster cuya autenticación de cliente deseas proteger con LDAP.

1

Cambia los ajustes de este archivo YAML para que coincidan con la configuración de set de réplicas deseada.

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: <my-replica-set>
6spec:
7 members: 3
8 version: "8.0.0"
9 opsManager:
10 configMapRef:
11 # Must match metadata.name in ConfigMap file
12 name: <configMap.metadata.name>
13 credentials: <mycredentials>
14 type: ReplicaSet
15 persistent: true
16 security:
17 tls:
18 ca: <custom-ca>
19 certsSecretPrefix: <prefix>
20...
2

Abre el editor de texto de preferencia y pega la especificación del objeto al final del archivo recurso, en la sección spec.

3

Para habilitar LDAP en su implementación, configure los siguientes ajustes en su objeto de Kubernetes:

Clave
Tipo y necesidad
Descripción
Ejemplo

booleano,
obligatorio

Establecer en true para habilitar la autenticación LDAP.

true

cadena, requerida

Especifique el nombre distintivo de LDAP al que MongoDB se vincula al conectarse al servidor LDAP.

cn=admin,dc=example,dc=org

cadena, requerida

Especifica el nombre del secreto que contiene la contraseña del nombre distinguido de enlace de LDAP con el que MongoDB se conecta a un servidor LDAP.

<secret-name>

string,
opcional

Agregar el nombre del ConfigMap que almacena la CA personalizada que usaste para firmar los certificados TLS de tu implementación.

<configmap-name>

string,
opcional

Agregue el nombre del campo que almacena el CA que valida el certificado TLS del servidor LDAP.

<configmap-key>

matriz de cadenas,
obligatoria

Especifica la lista de combinaciones de hostname:port de uno o más servidores LDAP. Para cada servidor, use una línea separada.

<example.com:636>

string,
opcional

Establezca en tls para utilizar LDAPS (LDAP sobre TLS). Déjalo en blanco si tu servidor LDAP no acepta TLS. Debes activar TLS al implementar el recurso de base de datos para usar esta configuración.

tls

cadena, requerida

Especifica el mapeo que mapea el nombre de usuario proporcionado a mongod o a mongos para la autenticación a un LDAP nombre distinguido (nombre distinguido).

Para aprender más, consulta security.ldap.userToDNMapping y Plantillas de query LDAP en la documentación de MongoDB Server.

<match: "(.+)",substitution: "uid={0},ou=groups,dc=example,dc=org">

cadena, requerida

Establecido en LDAP para habilitar la autenticación a través de LDAP.

LDAP

La configuración resultante puede ser similar al siguiente ejemplo:

security:
authentication:
enabled: true
# Enabled LDAP Authentication Mode
modes:
- "LDAP"
- "SCRAM"
# LDAP related configuration
ldap:
# Specify the hostname:port combination of one or
# more LDAP servers
servers:
- "ldap1.example.com:636"
- "ldap2.example.com:636"
# Set to "tls" to use LDAP over TLS. Leave blank if
# the LDAP server doesn't accept TLS. You must enable TLS when you deploy the database resource to use this setting.
transportSecurity: "tls"
# If TLS is enabled, add a reference to a ConfigMap that
# contains a CA certificate that validates the LDAP server's
# TLS certificate.
caConfigMapRef:
name: "<configmap-name>"
key: "<configmap-entry-key>"
# Specify the LDAP Distinguished Name to which
# MongoDB binds when connecting to the LDAP server
bindQueryUser: "cn=admin,dc=example,dc=org"
# Specify the password with which MongoDB binds
# when connecting to an LDAP server. This is a
# reference to a Secret Kubernetes Object containing
# one "password" key.
bindQueryPasswordSecretRef:
name: "<secret-name>"

Para obtener una lista completa de configuraciones de LDAP, consulte configuraciones de seguridad en la especificación de recursos MongoDB del Operador de Kubernetes. Consulta también la spec.security.authentication.agents.automationUserName configuración para el usuario del MongoDB Agent en tu implementación de Kubernetes con LDAP habilitado.

4

Actualiza tu recurso MongoDB con configuraciones de seguridad específicas para el agente, a partir de las especificaciones del recurso MongoDB del operador de Kubernetes. La configuración resultante puede tener una apariencia similar al siguiente ejemplo:

security:
authentication:
agents:
automationPasswordSecretRef:
key: automationConfigPassword
name: automation-config-password
automationUserName: mms-automation-agent
clientCertificateSecretRef:
name: agent-client-cert
mode: LDAP
enabled: true
ldap:
bindQueryPasswordSecretRef:
name: bind-query-password
bindQueryUser: cn=admin,dc=example,dc=org
servers:
- openldap.namespace.svc.cluster.local:389
userToDNMapping: '[{match: "(.+)",substitution: "uid={0},ou=groups,dc=example,dc=org"}]'
modes:
- LDAP
- SCRAM
requireClientTLSAuthentication: false
5
6

Invoca el siguiente comando de Kubernetes para actualizar tu set de réplicas:

kubectl apply -f <replica-set-conf>.yaml
7

Para verificar el estado de su MongoDB recurso, utilice el siguiente comando:

kubectl get mdb <resource-name> -o yaml -w

Con la bandera -w (observar) activada, cuando la configuración cambia, la salida se actualiza inmediatamente hasta que la fase de estado alcanza el estado Running. Para obtener más información sobre el estado de implementación de recursos, consulta Solucionar problemas con el operador de Kubernetes.

1

Cambia la configuración de este archivo YAML para que coincida con su configuración deseada de sharded cluster.

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: <my-sharded-cluster>
6spec:
7 shardCount: 2
8 mongodsPerShardCount: 3
9 mongosCount: 2
10 configServerCount: 3
11 version: "8.0.0"
12 opsManager:
13 configMapRef:
14 name: <configMap.metadata.name>
15 # Must match metadata.name in ConfigMap file
16 credentials: <mycredentials>
17 type: ShardedCluster
18 persistent: true
19 security:
20 tls:
21 ca: <custom-ca>
22 certsSecretPrefix: <prefix>
23...
2

Abre el editor de texto de preferencia y pega la especificación del objeto al final del archivo recurso, en la sección spec.

3

Para habilitar LDAP en su implementación, configure los siguientes ajustes en su objeto de Kubernetes:

Clave
Tipo y necesidad
Descripción
Ejemplo

booleano,
obligatorio

Establecer en true para habilitar la autenticación LDAP.

true

cadena, requerida

Especifique el nombre distintivo de LDAP al que MongoDB se vincula al conectarse al servidor LDAP.

cn=admin,dc=example,dc=org

cadena, requerida

Especifica el nombre del secreto que contiene la contraseña del nombre distinguido de enlace de LDAP con el que MongoDB se conecta a un servidor LDAP.

<secret-name>

string,
opcional

Agregar el nombre del ConfigMap que almacena la CA personalizada que usaste para firmar los certificados TLS de tu implementación.

<configmap-name>

string,
opcional

Agregue el nombre del campo que almacena el CA que valida el certificado TLS del servidor LDAP.

<configmap-key>

matriz de cadenas,
obligatoria

Especifica la lista de combinaciones de hostname:port de uno o más servidores LDAP. Para cada servidor, use una línea separada.

<example.com:636>

string,
opcional

Establezca en tls para utilizar LDAPS (LDAP sobre TLS). Déjalo en blanco si tu servidor LDAP no acepta TLS. Debes activar TLS al implementar el recurso de base de datos para usar esta configuración.

tls

cadena, requerida

Especifica el mapeo que mapea el nombre de usuario proporcionado a mongod o a mongos para la autenticación a un LDAP nombre distinguido (nombre distinguido).

Para aprender más, consulta security.ldap.userToDNMapping y Plantillas de query LDAP en la documentación de MongoDB Server.

<match: "(.+)",substitution: "uid={0},ou=groups,dc=example,dc=org">

cadena, requerida

Establecido en LDAP para habilitar la autenticación a través de LDAP.

LDAP

La configuración resultante puede ser similar al siguiente ejemplo:

security:
authentication:
enabled: true
# Enabled LDAP Authentication Mode
modes:
- "LDAP"
- "SCRAM"
# LDAP related configuration
ldap:
# Specify the hostname:port combination of one or
# more LDAP servers
servers:
- "ldap1.example.com:636"
- "ldap2.example.com:636"
# Set to "tls" to use LDAP over TLS. Leave blank if
# the LDAP server doesn't accept TLS. You must enable TLS when you deploy the database resource to use this setting.
transportSecurity: "tls"
# If TLS is enabled, add a reference to a ConfigMap that
# contains a CA certificate that validates the LDAP server's
# TLS certificate.
caConfigMapRef:
name: "<configmap-name>"
key: "<configmap-entry-key>"
# Specify the LDAP Distinguished Name to which
# MongoDB binds when connecting to the LDAP server
bindQueryUser: "cn=admin,dc=example,dc=org"
# Specify the password with which MongoDB binds
# when connecting to an LDAP server. This is a
# reference to a Secret Kubernetes Object containing
# one "password" key.
bindQueryPasswordSecretRef:
name: "<secret-name>"

Para obtener una lista completa de configuraciones de LDAP, consulte configuraciones de seguridad en la especificación de recursos MongoDB del Operador de Kubernetes. Consulta también la spec.security.authentication.agents.automationUserName configuración para el usuario del MongoDB Agent en tu implementación de Kubernetes con LDAP habilitado.

4

Actualiza tu recurso MongoDB con configuraciones de seguridad específicas para el agente, a partir de las especificaciones del recurso MongoDB del operador de Kubernetes. La configuración resultante puede tener una apariencia similar al siguiente ejemplo:

security:
authentication:
agents:
automationPasswordSecretRef:
key: automationConfigPassword
name: automation-config-password
automationUserName: mms-automation-agent
clientCertificateSecretRef:
name: agent-client-cert
mode: LDAP
enabled: true
ldap:
bindQueryPasswordSecretRef:
name: bind-query-password
bindQueryUser: cn=admin,dc=example,dc=org
servers:
- openldap.namespace.svc.cluster.local:389
userToDNMapping: '[{match: "(.+)",substitution: "uid={0},ou=groups,dc=example,dc=org"}]'
modes:
- LDAP
- SCRAM
requireClientTLSAuthentication: false
5
6

Ejecuta el siguiente comando de Kubernetes para actualizar tu clúster fragmentado:

kubectl apply -f <sharded-cluster-conf>.yaml
7

Para verificar el estado de su MongoDB recurso, utilice el siguiente comando:

kubectl get mdb <resource-name> -o yaml -w

Con la bandera -w (observar) activada, cuando la configuración cambia, la salida se actualiza inmediatamente hasta que la fase de estado alcanza el estado Running. Para obtener más información sobre el estado de implementación de recursos, consulta Solucionar problemas con el operador de Kubernetes.