Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Autenticaci贸n de proxy LDAP autogestionada

MongoDB Enterprise admite el proxy de solicitudes de autenticaci贸n a un servicio de Protocolo ligero de acceso a directorios (LDAP).

MongoDb contempla la vinculaci贸n simple y Sasl a los servidores Ldap:

v铆a
Descripci贸n

Librer铆as del sistema operativo

MongoDB admite la vinculaci贸n a un servidor LDAP a trav茅s de bibliotecas del sistema operativo.

Esto permite que los servidores de MongoDB en Linux y Windows utilicen un servidor LDAP para realizar la autenticaci贸n.

En versiones anteriores, MongoDB en Microsoft Windows no puede conectarse a servidores LDAP.

saslauthd

Los servidores de MongoDB en Linux admiten la vinculaci贸n a un servidor LDAP mediante el demonio saslauthd.

No est谩 disponible para MongoDB en Windows.

Una descripci贸n completa de LDAP est谩 fuera del alcance de esta documentaci贸n. Esta p谩gina asume conocimientos previos de LDAP.

Esta documentaci贸n solo describe la autenticaci贸n LDAP de MongoDB y no reemplaza otros recursos sobre LDAP. Te animamos a familiarizarte totalmente con LDAP y sus temas relacionados antes de configurar la autenticaci贸n LDAP.

MongoDB puede proporcionar servicios profesionales para una configuraci贸n 贸ptima de la autenticaci贸n LDAP en tu implementaci贸n de MongoDB.

Al conectarse al servidor LDAP para autenticaci贸n/autorizaci贸n, MongoDB, por defecto:

  • Utiliza agrupamiento de conexiones si se ejecuta:

    • en Windows o

    • en Linux, donde los binarios de MongoDB Enterprise est谩n vinculados contra libldap_r.

  • No utiliza el agrupamiento de conexiones si se ejecuta:

    • en Linux, donde los binarios de MongoDB Enterprise est谩n vinculados a libldap.

Para cambiar el comportamiento del agrupamiento de conexiones, actualice el ldapUseConnectionPool par谩metro.

Importante

El directorio principal del archivo de socket de dominio Unix saslauthd especificado para security.sasl.saslauthdSocketPath o --setParameter saslauthdPath debe conceder permisos de lectura y ejecuci贸n (r-x) para:

  • El usuario comienza el mongod o mongos, o

  • Un grupo al que pertenece ese usuario.

El mongod o mongos no pueden autenticarse correctamente a trav茅s de saslauthd sin el permiso especificado en el directorio saslauthd y su contenido.

Para los binarios de MongoDB 4.2 Enterprise vinculados contra libldap (como al ejecutarse en RHEL), el acceso a libldap est谩 sincronizado, lo que genera algunos costos de rendimiento/latencia.

Para los binarios de MongoDB 4.2 Enterprise vinculados contra libldap_r, no hay cambios en el comportamiento respecto a versiones anteriores de MongoDB.

Al usar la autenticaci贸n LDAP sin autorizaci贸n LDAP, la gesti贸n de usuarios requiere gestionar usuarios tanto en el servidor LDAP como en el servidor MongoDB. Para cada usuario que se autentique a trav茅s de LDAP, MongoDB requiere un usuario en la base de datos $external cuyo nombre coincida exactamente con el nombre de usuario de autenticaci贸n. Los cambios a un usuario en el servidor LDAP pueden requerir cambios en el usuario correspondiente de MongoDB $external.

Para usar sesiones de cliente y garant铆as de coherencia causal con usuarios de autenticaci贸n $external (usuarios Kerberos, LDAP o X.509), los nombres de usuario no pueden superar los 10k bytes.

Ejemplo

Un usuario se autentica como sam@dba.example.com. El servidor MongoDB se conecta al servidor LDAP y autentica al usuario, respetando cualquier username transformations. Despu茅s de una autenticaci贸n exitosa, el servidor MongoDB verifica en la base de datos $external si existe un usuario sam@dba.example.com y otorga a ese usuario autenticado los roles y privilegios asociados.

Para administrar usuarios en el servidor de MongoDB, debe autenticarse como un usuario LDAP cuyo usuario de $external de MongoDB correspondiente tenga privilegios administrativos de usuario en la base de datos $external, como los proporcionados por userAdmin.

Importante

Si ning煤n usuario $external tiene privilegios administrativos de usuario en la base de datos $external, no puedes realizar la gesti贸n de usuarios para la autenticaci贸n de LDAP. Este escenario puede ocurrir si configuras usuarios antes de habilitar la autenticaci贸n LDAP, pero no creas los administradores de usuarios adecuados.

Si hay usuarios existentes que no est谩n en la base de datos $external, debe cumplir con los siguientes requisitos para cada usuario a fin de garantizar el acceso continuo:

  • El usuario tiene un objeto de usuario correspondiente en el servidor LDAP

  • El usuario existe en la base de datos $external con roles y privilegios equivalentes

Si deseas seguir permitiendo el acceso de usuarios que no est谩n en la base de datos $external, debes configurar setParameter authenticationMechanisms para incluir SCRAM-SHA-1 y/o SCRAM-SHA-256, seg煤n corresponda. Luego, los usuarios deben especificar --authenticationMechanism SCRAM-SHA-1 o SCRAM-SHA-256 al autenticarse.

Para sets de r茅plicas, configura primero la autenticaci贸n LDAP en los miembros secundarios y 谩rbitros antes de configurar el primario. Esto tambi茅n se aplica a los sets de r茅plicas de particiones o a los sets de r茅plicas de servidores de configuraci贸n. Configura un miembro del conjunto de r茅plicas a la vez para mantener una mayor铆a de nodos para la disponibilidad de escritura.

En cl煤steres sharded, debes configurar la autenticaci贸n LDAP en los servidores de configuraci贸n y en cada mongos para los usuarios a nivel de cl煤ster. Opcionalmente, puedes configurar la autorizacion LDAP en cada partici贸n para los usuarios locales del fragmento.

El proceso de autenticaci贸n LDAP a trav茅s de las bibliotecas del sistema operativo se resume a continuaci贸n:

  1. Un cliente se autentica en MongoDB, proporcionando las credenciales de un usuario.

  2. Si el nombre de usuario requiere ser mapeado a un nombre distinguido de LDAP antes de autenticarse contra el servidor LDAP, MongoDB puede aplicar transformaciones basadas en el ajuste de configuraci贸n security.ldap.userToDNMapping.

  3. MongoDB se conecta a un servidor LDAP especificado en security.ldap.servers utilizando el nombre de usuario proporcionado o, si se aplic贸 una transformaci贸n, el nombre de usuario transformado.

    MongoDB utiliza la vinculaci贸n simple por defecto, pero tambi茅n puede utilizar la vinculaci贸n sasl si se configura en security.ldap.bind.method y security.ldap.bind.saslMechanisms.

    Si una transformaci贸n requiere consultar el servidor LDAP, o si el servidor LDAP proh铆be enlaces an贸nimos, MongoDB utiliza el nombre de usuario y la contrase帽a especificados en security.ldap.bind.queryUser y security.ldap.bind.queryPassword para conectarse al servidor LDAP antes de intentar autenticar las credenciales del usuario proporcionadas.

  4. El servidor LDAP devuelve el resultado del intento de vinculaci贸n a MongoDB. En caso de 茅xito, MongoDB intenta autorizar al usuario.

  5. El servidor MongoDB intenta asociar el nombre de usuario con un usuario en la base de datos $external, otorgando a ese usuario todos los roles o privilegios asociados a un usuario coincidente. Si MongoDB no puede encontrar un usuario que coincida, la autenticaci贸n falla.

  6. El cliente puede realizar aquellas acciones para las cuales MongoDB ha otorgado al usuario autenticado roles o privilegios.

Para utilizar LDAP para la autenticaci贸n mediante las bibliotecas del sistema operativo, especifique los siguientes ajustes como parte de su archivo de configuraci贸n de mongod o mongos:

Opci贸n
Descripci贸n
Requerido

Lista separada por comas de servidores LDAP con comillas en el formato host[:port].

Puedes anteponer a los servidores LDAP los prefijos srv: y srv_raw:.

Si la cadena de conexi贸n especifica "srv:<DNS_NAME>", mongod verifica que "_ldap._tcp.gc._msdcs.<DNS_NAME>" existe para que SRV sea compatible con Active Directory. Si no se encuentra, mongod verifica que "_ldap._tcp.<DNS_NAME>" existe para SRV. Si no se encuentra un registro SRV, mongod advierte que se use "srv_raw:<DNS_NAME>" en cambio.

Si su cadena de conexi贸n especifica "srv_raw:<DNS_NAME>", mongod realiza una b煤squeda de un registro SRV para "<DNS NAME>".

S铆

Se utiliza para especificar el m茅todo que el mongod o mongos usa para autenticarse o vincularse con el servidor LDAP. Especifique sasl para utilizar uno de los protocolos SASL definidos en security.ldap.bind.saslMechanisms.

Se establece por defecto en simple.

NO, a menos que utilice sasl para vincularse al servidor LDAP.

Se utiliza para especificar los mecanismos SASL mongod o mongos que se pueden utilizar al autenticar o vincularse al servidor LDAP. MongoDB y el servidor LDAP deben acordar al menos un mecanismo SASL.

Se establece por defecto en DIGEST-MD5.

NO, a menos que configure method en sasl y necesite mecanismos SASL diferentes o adicionales.

La entidad LDAP, identificada por su nombre distinguido (nombre distinguido) o nombre SASL, que el servidor de MongoDB autentica o vincula cuando se conecta a un servidor LDAP.

Usar con queryPassword.

El usuario especificado debe tener los privilegios apropiados para ejecutar consultas en el servidor LDAP.

NO, a menos que se especifique una query como parte de una userToDNMapping transformaci贸n, o si la configuraci贸n de seguridad del servidor LDAP no permite enlaces an贸nimos.

La contrase帽a utilizada para autenticar en un servidor LDAP al usar queryUser.

NO, salvo que se especifique en queryUser.

Las implementaciones de MongoDB en Windows pueden usar las credenciales del sistema operativo en lugar de queryUser y queryPassword para autenticar o vincularse al conectarse al servidor LDAP.

NO, a menos que est茅 reemplazando queryUser y queryPassword.

Los clientes pueden autenticarse utilizando un nombre de usuario cuyo formato es incompatible con el formato esperado por el bind method configurado. Por ejemplo, simple la vinculaci贸n puede requerir un nombre distinguido total de LDAP, mientras que el nombre de usuario utilizado para autenticarse en MongoDB puede ser una direcci贸n de correo electr贸nico.

userToDNMapping permite que MongoDB transforme los nombres de usuario recibidos a un formato compatible con tu esquema LDAP. MongoDB admite transformaciones utilizando una plantilla de sustituci贸n o una plantilla de query LDAP.

Si se especifica una userToDNMapping transformaci贸n que utiliza consultas LDAP como parte de la transformaci贸n, tambi茅n se debe especificar un queryUser con el nivel de permisos adecuado para el servidor LDAP

NO, a menos que el cliente se autentique utilizando nombres de usuario que requieran transformaci贸n.

Advertencia

MongoDB Enterprise para Windows no admite la vinculaci贸n mediante saslauthd.

  • Los servidores MongoDB de Linux admiten la vinculaci贸n a un servidor LDAP a trav茅s del demonio saslauthd.

  • Uso de conexiones seguras cifradas o de confianza entre los clientes y el servidor, as铆 como entre saslauthd y el servidor LDAP. El servidor LDAP utiliza el mecanismo SASL PLAIN, enviando y recibiendo datos en texto claro. Debe usar solo un canal de confianza, como una VPN, una conexi贸n cifrada con TLS/SSL o una red por cable de confianza.

Para configurar el servidor MongoDB para que se vincule con el servidor LDAP utilizar saslauthd, inicie el mongod utilizando cualquiera de las siguientes opciones de l铆nea de comandos o los siguientes ajustes de archivo de configuraci贸n:

Incluye cualquier otra opci贸n de l铆nea de comandos requerida para tu implementaci贸n. Para obtener documentaci贸n completa sobre las mongod opciones de l铆nea de comandos, consulte mongod instancias.

  • security.authorization configurado en enabled,

  • setParameter con el par谩metro authenticationMechanisms establecido en PLAIN, y

  • setParameter con el saslauthdPath establecido en la ruta al socket Unix-domain de la instancia saslauthd. Especifica un string vac铆o "" para usar la ruta por defecto del socket de dominio Unix.

Incluye cualquier otra configuraci贸n de archivo requerida para tu implementaci贸n. Para obtener documentaci贸n completa sobre los archivos de configuraci贸n, consulta Archivo de configuraci贸n YAML.

Debe crear o actualizar el archivo saslauthd.conf con los par谩metros adecuados para su servidor LDAP. La documentaci贸n de saslauthd.conf est谩 fuera del alcance de esta documentaci贸n.

Importante

El directorio principal del archivo de socket de dominio Unix saslauthd especificado para security.sasl.saslauthdSocketPath o --setParameter saslauthdPath debe conceder permisos de lectura y ejecuci贸n (r-x) para:

  • El usuario comienza el mongod o mongos, o

  • Un grupo al que pertenece ese usuario.

El mongod o mongos no pueden autenticarse correctamente a trav茅s de saslauthd sin el permiso especificado en el directorio saslauthd y su contenido.

Los siguientes tutoriales proporcionan informaci贸n b谩sica sobre la configuraci贸n de saslauthd.conf para trabajar con dos servicios LDAP populares:

Consulta la documentaci贸n de saslauthd y tu servicio de LDAP espec铆fico para obtener orientaci贸n.

Para autenticarse en un servidor MongoDB utilizando autenticaci贸n LDAP, use db.auth() en la base de datos $external con los siguientes par谩metros:

Opci贸n
Descripci贸n

username

El nombre de usuario con el que se debe autenticar.

password

La contrase帽a para autenticarse.

mechanism

Se debe establecer en PLAIN.

Volver

Usar autorizaci贸n de Active Directory

En esta p谩gina