Docs Menu
Docs Home
/ /
/ / /

Utilice LDAP para la autenticación interna en implementaciones de varios clústeres

MongoDB Enterprise admite:

  • Envío de 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, consulte las secciones Autenticación de proxy LDAP y Autorización LDAP en la documentación del servidor MongoDB.

Puede utilizar el operador de Kubernetes para configurar LDAP para autenticar las aplicaciones cliente que se conectan a las implementaciones de MongoDB en clústeres multi-Kubernetes. Esta guía describe cómo configurar la autenticación LDAP desde las aplicaciones cliente a las implementaciones de MongoDB en clústeres multi-Kubernetes.

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

  • Para mejorar la seguridad, considere implementar un multiclúster cifrado con TLS. El cifrado con TLS es opcional. De forma predeterminada, el tráficoLDAP 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. Considere usar LDAP sobre TLS/SSL para cifrar las solicitudes de autenticación en sus implementaciones de Kubernetes Operator MongoDB.

Antes de proteger su implementación de MongoDB en un clúster multi-Kubernetes mediante cifrado TLS, complete 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

Establezca 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

Agregue el nombre de ConfigMap que almacena la CA personalizada que utilizó para firmar los certificados TLS de su 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

Especifique la lista de hostname:port combinaciones de uno o más servidores LDAP. Para cada servidor, utilice una línea independiente.

<example.com:636>

string,
optional

Establezca tls para usar LDAPS (LDAP sobre TLS). Déjelo en blanco si su servidor LDAP no acepta TLS. Debe habilitar TLS al implementar el recurso de base de datos para usar esta configuración.

tls

string,
required

Especifique la asignación que asigna el nombre de usuario proporcionado a mongod o para mongos la autenticación a un nombre distinguido (DN) LDAP.

Para obtener más información, consulte security.ldap.userToDNMapping y Plantillas de consulta LDAP en la documentación del servidor MongoDB.

<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 los clústeres de miembros, ejecute los siguientes comandos para verificar que los pods de MongoDB estén en estado de 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, ejecute el siguiente comando para verificar que el recurso MongoDBMultiCluster esté en estado de ejecución:

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

En esta página