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

Gestionar usuarios de base de datos utilizando autenticación LDAP

El Operador de Kubernetes admite la gestión de usuarios de bases de datos para implementaciones que se ejecutan con TLS y autenticación de clúster LDAP habilitados.

La configuración para usuarios autenticados a través de LDAP depende de las plantillas de query de LDAP y de las asignaciones que establece MongoDB.

Para aprender más, consulta las siguientes secciones en la documentación de MongoDB Server:

  • Autorización LDAP

  • Plantillas de consulta de LDAP

  • security.ldap.userToDNMapping

El operador de Kubernetes admite los mecanismos de autenticación SCRAM, LDAP y X.509 en las implementaciones que crea. En una implementación creada por el operador de Kubernetes, no se puede utilizar Ops Manager para:

  • Configura otros mecanismos de autenticación para las implementaciones.

  • Gestiona usuarios que no utilizan autenticación SCRAM, LDAP o X.509.

Antes de gestionar los usuarios de la base de datos, debes implementar un set de réplicas o clúster con LDAP habilitado. activado. Opcionalmente, puedes activar TLS. Para obtener más información, consulte Asegurar un recurso de base de datos.

1

Si aún no lo ha hecho, ejecute el siguiente comando para ejecutar todos los comandos de kubectl en el namespace que creó.

Nota

Si estás implementando un recurso de Ops Manager en una implementación de MongoDB multidispositivo en clústeres de Kubernetes:

  • Defina context como el nombre del clúster operador, por ejemplo: kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME".

  • Establece el --namespace en el mismo ámbito que utilizaste para tu implementación de MongoDB de clústeres multi-Kubernetes, como por ejemplo: kubectl config --namespace "mongodb".

kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
2
---
apiVersion: mongodb.com/v1
kind: MongoDBUser
metadata:
name: ldap-user-1
spec:
username: "uid=mdb0,dc=example,dc=org"
db: "$external"
mongodbResourceRef:
name: ldap-replica-set
roles:
- db: "admin"
name: "clusterAdmin"
- db: "admin"
name: "readWriteAnyDatabase"
- db: "admin"
name: "dbAdminAnyDatabase"
...
3
4

Usa la siguiente tabla para guiarte en la modificación de las líneas relevantes en la Especificación de Recursos de Usuarios de MongoDB. Para obtener una lista completa de la configuración de usuarios de LDAP, consulta la configuración de seguridad en la especificación de recursos del operador de Kubernetes MongoDB.

Clave
Tipo
Descripción
Ejemplo

metadata.name

string

El nombre del recurso para el usuario de base de datos de MongoDB.

Los nombres de recursos deben tener 44 caracteres o menos.

ldap-user-1

spec.db

string

El nombre de la base de datos MongoDB a la que se añadirán los usuarios. Este valor debe ser $external.

$external

spec.mongodbResourceRef.name

string

El nombre del recurso de MongoDB al que está asociado este usuario.

my-resource

spec.opsManager.configMapRef.name

string

El nombre del proyecto que contiene la base de datos MongoDB donde se agregará el usuario. La configuración spec.cloudManager.configMapRef.name es un alias de esta configuración y se puede utilizar en su lugar.

my-project

spec.roles.db

string

La base de datos sobre la que puede actuar el rol.

admin

spec.roles.name

string

El nombre del rol para otorgar al usuario de base de datos. El nombre del rol puede ser cualquier rol incorporado de MongoDB o rol personalizado que exista en Cloud Manager u Ops Manager.

readWriteAnyDatabase

spec.username

string

El nombre de usuario autenticado que está asignado a un nombre distinguido (nombre distinguido) de LDAP según spec.security.authentication.ldap.userToDNMapping. El nombre distinguido ya debe existir en tu implementación de LDAP. Este nombre de usuario debe cumplir con el RFC 2253 estándar de Nombre Distinguido LDAPv3. transformed

Para obtener más información, consulte Plantillas de query LDAP en el manual de MongoDB.

uid=mdb0,dc=example,dc=org

5

Puede otorgar roles adicionales a este usuario utilizando el formato definido en el siguiente ejemplo:

---
apiVersion: mongodb.com/v1
kind: MongoDBUser
metadata:
name: ldap-user-1
spec:
username: "uid=mdb0,dc=example,dc=org"
db: "$external"
mongodbResourceRef:
name: ldap-replica-set
roles:
- db: "admin"
name: "clusterAdmin"
- db: "admin"
name: "readWriteAnyDatabase"
- db: "admin"
name: "dbAdminAnyDatabase"
...
6

Invoca el siguiente comando de Kubernetes para crear tu usuario de base de datos:

kubectl apply -f <database-user-conf>.yaml

Los siguientes ejemplos ilustran los formatos de la cadena de conexión que se pueden utilizar al habilitar la autenticación con LDAP en las implementaciones de Kubernetes Operator MongoDB. Estos ejemplos utilizan el namespace mongodb y una implementación de set de réplicas llamada replica-set-ldap. Los ejemplos son similares para clústeres fragmentados.

  • connectionString.standard:Cadena de conexión estándar que puede conectar al usuario de base de datos a la base de datos.

    mongodb://replica-set-ldap-0-0-svc.mongodb.svc.cluster.local/?connectTimeoutMS=20000&replicaSet=replica-set-ldap&serverSelectionTimeoutMS=20000&ssl=true&authSource=$external
  • connectionString.standardSrv: cadena de conexión de lista de nodos iniciales DNS que puede conectarte a la base de datos como este usuario de base de datos.

    mongodb+srv://replica-set-ldap-svc.mongodb.svc.cluster.local/?connectTimeoutMS=20000&replicaSet=replica-set-ldap&serverSelectionTimeoutMS=20000&ssl=true&authSource=$external

Utilizando los formatos mostrados previamente, puedes conectarte a la base de datos MongoDB con MongoDB Shell (mongosh), como se muestra en el siguiente ejemplo:

mongosh <connection-string> \
--host <my-replica-set>/web1.example.com \
--port 30907 \
--authenticationMechanism PLAIN \
--username cn=rob,cn=Users,dc=ldaps-01,dc=myteam,dc=com

Puedes utilizar estas credenciales para conectarte a un recurso de base de datos de MongoDB desde dentro de Kubernetes.

7

Puede ver el usuario recién creado en Cloud Manager u Ops Manager:

  1. Desde el proyecto Deployment ver, haz clic en la pestaña Security.

  2. Haz clic en la pestaña anidada MongoDB Users.

Para borrar un usuario de base de datos, pasa el metadata.name del usuario ConfigMap al siguiente comando:

kubectl delete mdbu <metadata.name>

En esta página