Docs Menu
Docs Home
/ /
/ / /

Gestionar usuarios de base de datos utilizando autenticación LDAP

El operador de Kubernetes admite la administración de usuarios de bases de datos para implementaciones que se ejecutan con Autenticación de clústerTLS y LDAP habilitada.

La configuración para usuarios autenticados a través de LDAP se basa en las plantillas de consulta LDAP y las asignaciones que establece MongoDB.

Para obtener más información, consulte las siguientes secciones en la documentación de MongoDB Server:

  • Autorización LDAP

  • Plantillas de consulta LDAP

  • seguridad.ldap.userToDNMapping

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

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

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

Antes de administrar los usuarios de la base de datos, debe implementar una Conjunto de réplicas o clúster fragmentado con LDAP habilitado. Opcionalmente, puede habilitar TLS. Para obtener más información, consulte Proteger un recurso de base de datos.

1

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

Nota

Si está implementando un recurso de Ops Manager en una implementación de MongoDB de un clúster de Kubernetes múltiple:

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

  • Establezca --namespace en el mismo ámbito que utilizó para su implementación de MongoDB en un clúster de Kubernetes múltiple, como porkubectl config --namespace "mongodb" ejemplo:.

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

Utilice la siguiente tabla como guía para cambiar las líneas relevantes en la Especificación de Recursos de Usuario de MongoDB. Para obtener una lista completa de la configuración de usuario LDAP, consulte la configuración de seguridad en la especificación de recursos de MongoDB del Operador de Kubernetes.

Clave
Tipo
Descripción
Ejemplo

metadata.name

string

El nombre del recurso para el usuario de la base de datos 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 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. El parámetro es un alias para esta configuración y puede usarse en su spec.cloudManager.configMapRef.name 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 que se otorgará al usuario de la base de datos. El nombre del rol puede ser cualquier rol integrado de MongoDB o un rol personalizado existente en Cloud Manager u Ops Manager.

readWriteAnyDatabase

spec.username

string

El nombre de usuario autenticado asignado a un nombre distintivo (DN) LDAP según. El DN debe existir previamente en su spec.security.authentication.ldap.userToDNMapping implementación LDAP. Este nombre de usuario debe cumplir con el estándar RFC 2253 LDAPv3 para nombres distintivos. transformed

Para obtener más información, consulte Plantillas de consulta 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

Invoque el siguiente comando de Kubernetes para crear su usuario de base de datos:

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

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

  • connectionString.standard:Cadenade conexión estándar que puede conectarlo a la base de datos como este usuario de 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 la lista desemillas DNS que puede conectarlo 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 anteriormente, puede conectarse a la base de datos MongoDB con MongoDB Shell (mongosh), como 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

Puede utilizar estas credenciales para conectarse a un recurso de base de datos MongoDB desde dentro de Kubernetes.

7

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

  1. Del Proyecto Deployment Ver, haga clic en la pestaña Security.

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

Para eliminar un usuario de la base de datos, pase el metadata.name del ConfigMap del usuario al siguiente comando:

kubectl delete mdbu <metadata.name>

En esta página