Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
/ / /

Autenticación segura de clientes con LDAP

MongoDB Enterprise admite:

  • 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 mediante saslauthd o a través de 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 en un clúster multi-Kubernetes. Esta guía describe cómo configurar la autenticación LDAP desde aplicaciones cliente hacia tus implementaciones de MongoDB en múltiples clústeres de Kubernetes.

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

  • Para mejorar la seguridad, considera implementar un multi-clúster cifrado con 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 quedan expuestos a amenazas de red. Muchos servicios de directorio modernos, como Microsoft Active Directory, requieren conexiones cifradas. Considera utilizar LDAP sobre TLS/SSL para cifrar las solicitudes de autenticación en tus implementaciones de MongoDB Kubernetes Operator.

Antes de asegurar tu implementación multi-Kubernetes de MongoDB usando el cifrado TLS, completa las siguientes tareas:

1

Actualiza tu recurso personalizado MongoDBMultiCluster con configuraciones de seguridad del operador de Kubernetes especificación de recursos MongoDBMultiCluster.

Para habilitar LDAP en su implementación, configure las siguientes opciones en su objeto de Kubernetes:

Clave
Tipo y necesidad
Descripción
Ejemplo
boolean,
required

Establecer en true para habilitar la autenticación LDAP.

true

string,
required

Especifique el nombre distinguido LDAP al que MongoDB se vincula cuando se conecta al servidor LDAP.

cn=admin,dc=example,dc=org

string,
required

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,
optional

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

<configmap-name>

string,
optional

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

<configmap-key>

array of strings,
required

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,
optional

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

string,
required

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">

string,
required

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

LDAP

La configuración resultante puede parecerse 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 multi-cluster 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 las configuraciones de LDAP, consulte la configuración de seguridad en la especificación del recurso MongoDBMultiCluster del operador de Kubernetes. Consulte también la configuración del usuario del agente de MongoDB en su implementación spec.security.authentication.agents.automationUserName del operador de Kubernetes con LDAP habilitado.

2
  1. Para clústeres nodos, ejecuta los siguientes comandos para verificar que los Pods de MongoDB estén en estado en ejecución:

    kubectl get pods \
    --context=$MDB_CLUSTER_1_FULL_NAME \
    --namespace mongodb
    kubectl get pods \
    --context=$MDB_CLUSTER_2_FULL_NAME \
    --namespace mongodb
    kubectl get pods \
    --context=$MDB_CLUSTER_3_FULL_NAME \
    --namespace mongodb
  2. En el clúster del operador, ejecuta el siguiente comando para verificar que el recurso MongoDBMultiCluster se encuentre en estado activo:

    kubectl --context=$MDB_CENTRAL_CLUSTER_FULL_NAME \
    --namespace mongodb \
    get mdbmc multi-replica-set -o yaml -w

En esta página