Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

mongoldap

MongoDB Enterprise

Nota

A partir de MongoDB 8.0 y continuado en 9.0, La autenticación y autorización de LDAP están obsoletas. LDAP se eliminará en una futura versión.

Para aprender sobre métodos de autenticación alternativos, consulta Alternativas de autenticación LDAP.

MongoDB Enterprise proporciona mongoldap para probar las opciones de configuración de LDAP de MongoDB en un servidor LDAP en funcionamiento o en un conjunto de servidores.

Para validar las opciones de LDAP en el archivo de configuración, establezca la mongoldap --config opción en la ruta del archivo de configuración.

Para probar las opciones de configuración de LDAP, debe especificar un --user y --password. mongoldap simula la autenticación en un servidor MongoDB que se ejecuta con las opciones de configuración y las credenciales proporcionadas.

mongoldap devuelve un informe que incluye el éxito o el fracaso de cualquier paso en el procedimiento de autenticación o autorización LDAP. Los mensajes de error incluyen información sobre errores específicos encontrados y consejos potenciales para resolverlos.

Al configurar opciones relacionadas con la autorizacion LDAP, mongoldap ejecuta una query LDAP construida usando las opciones de configuración y el nombre de usuario proporcionados, y devuelve una lista de roles en la base de datos admin para los que el usuario está autorizado.

Puede utilizar esta información al configurar roles de autorizacion LDAP para el control de acceso de usuarios. Por ejemplo, utilice mongoldap para asegurarse de que su configuración permita a los usuarios privilegiados obtener los roles necesarios para realizar las tareas previstas. Del mismo modo, utilice mongoldap para garantizar que su configuración impida que los usuarios sin privilegios obtengan roles para acceder al servidor de MongoDB o realizar acciones no autorizadas.

Al configurar opciones relacionadas con la autenticación LDAP, utilice mongoldap para garantizar que la operación de autenticación funcione como se espera.

Ejecuta mongoldap desde la línea de comandos del sistema, no en mongosh.

Este documento proporciona una visión completa de todas las opciones de línea de comandos para mongoldap.

La herramienta mongoldap es parte del paquete MongoDB Database Tools extra, y se puede instalar con MongoDB Server o como una instalación autónoma.

Para instalar mongoldap como parte de una instalación de MongoDB Enterprise servidor:

  • Sigue las instrucciones para su plataforma: Instale MongoDB Enterprise servidor

  • Una vez completada la instalación, mongoldap y las otras herramientas incluidas están disponibles en la misma ubicación que el servidor.

    Nota

    Para el asistente de instalación de Windows .msi, la opción de instalación Complete incluye mongoldap.

Para instalar mongoldap como instalación autónoma:

  • Sigue el enlace de descarga para MongoDB Enterprise Edition: Centro de Descargas de MongoDB Enterprise

  • Selecciona tu Platform (sistema operativo) en el menú desplegable y luego selecciona el Package correspondiente para tu plataforma según la siguiente gráfica:

    OS
    Paquete

    Linux

    tgz Paquete

    Windows

    zip Paquete

    macOS

    tgz Paquete

  • Una vez descargado, descomprime el fichero y copia mongoldap a una ubicación de tu disco duro.

    Tip

    Los usuarios de Linux y macOS pueden querer copiar mongoldap a una ubicación del sistema de archivos que está definida en la variable de entorno $PATH, como /usr/bin. Al hacerlo, se puede hacer referencia a mongoldap directamente en la línea de comandos por su nombre, sin necesidad de especificar su ruta completa o navegar primero a su directorio principal. Consulte la guía de instalación para su plataforma para obtener más información.

Nota

Una descripción completa de LDAP o Active Directory está fuera del alcance de esta documentación.

Considere el siguiente archivo de configuración de muestra, diseñado para admitir la autenticación y autorización de LDAP a través de Active Directory:

security:
authorization: "enabled"
ldap:
servers: "activedirectory.example.net"
bind:
queryUser: "mongodbadmin@dba.example.com"
queryPassword: "secret123"
userToDNMapping:
'[
{
match : "(.+)",
ldapQuery: "DC=example,DC=com??sub?(userPrincipalName={0})"
}
]'
authz:
queryTemplate: "DC=example,DC=com??sub?(&(objectClass=group)(member:1.2.840.113556.1.4.1941:={USER}))"
setParameter:
authenticationMechanisms: "PLAIN"

Puede utilizar mongoldap para validar el archivo de configuración, que devuelve un informe del procedimiento. Debe especificar un nombre de usuario y una contraseña para mongoldap.

mongoldap --config=<path-to-config> --user="bob@dba.example.com" --password="secret123"

Si las credenciales proporcionadas son válidas y las opciones de LDAP en los archivos de configuración son válidas, la salida podría ser la siguiente:

Checking that an LDAP server has been specified...
[OK] LDAP server found
Connecting to LDAP server...
[OK] Connected to LDAP server
Parsing MongoDB to LDAP DN mappings..
[OK] MongoDB to LDAP DN mappings appear to be valid
Attempting to authenticate against the LDAP server...
[OK] Successful authentication performed
Checking if LDAP authorization has been enabled by configuration...
[OK] LDAP authorization enabled
Parsing LDAP query template..
[OK] LDAP query configuration template appears valid
Executing query against LDAP server...
[OK] Successfully acquired the following roles:
...

A partir de MongoDB 5.1, mongoldap permite anteponer al servidor LDAP srv: y srv_raw:.

Si tu cadena de conexión especifica "srv:<DNS_NAME>", mongoldap verifica que "_ldap._tcp.gc._msdcs.<DNS_NAME>" exista para que SRV admita Active Directory. Si no se encuentra, mongoldap verifica que "_ldap._tcp.<DNS_NAME>" exista para SRV. Si no se puede encontrar un registro SRV, mongoldap te advertirá que uses "srv_raw:<DNS_NAME>" en su lugar.

Si tu cadena de conexión especifica "srv_raw:<DNS_NAME>", mongoldap realiza una consulta de registros SRV para "<DNS NAME>".

--config=<filename>, -f=<filename>

Especifica un archivo de configuración para las opciones de configuración en tiempo de ejecución. Estas opciones son equivalentes a las opciones de configuración de la línea de comandos. Consulta Opciones del archivo de configuración autogestionada para obtener más información.

mongoldap utiliza cualquier opción de configuración relacionada con autenticación de proxy LDAP autogestionado o autorizacion LDAP en implementaciones autogestionadas para probar la autenticación o autorización de LDAP.

Requiere especificar --user. Puede aceptar --password para probar la autenticación LDAP.

Asegúrese de que el archivo de configuración utilice codificación ASCII. La mongoldap instancia no admite archivos de configuración con la codificación no ASCII, incluido UTF-8.

--user=<string>

Nombre de usuario para mongoldap a utilizar al intentar la autenticación o autorización LDAP.

--password=<string>

Contraseña de --user para mongoldap a utilizar al intentar la autenticación LDAP. No se requiere para la autorizacion LDAP.

--ldapServers=<host1>:<port>,<host2>:<port>,...,<hostN>:<port>

El servidor LDAP contra el cual el mongoldap autentica a los usuarios o determina qué acciones está autorizado a realizar un usuario en una base de datos dada. Si el servidor LDAP especificado tiene instancias replicadas, puede especificar el host y el puerto de cada servidor replicado en una lista delimitada por comas.

Si su infraestructura LDAP divide el directorio LDAP en varios servidores LDAP, especifique un servidor LDAP o cualquiera de sus instancias replicadas en --ldapServers. MongoDB admite las siguientes referencias LDAP definidas en RFC 4511 4.1.10. No utilice --ldapServers para listar todos los servidores LDAP de su infraestructura.

Si no se configura, mongoldap no puede utilizar la autenticación o la autorización LDAP.

--ldapQueryUser=<string>

Disponible solamente en MongoDB Enterprise.

La identidad con la que mongoldap se vincula al conectarse o realizar queries en un servidor LDAP.

Solo es necesario si alguna de las siguientes condiciones es verdadera:

Debe usar --ldapQueryUser con --ldapQueryPassword.

Si no se establece, mongoldap no intentará vincularse al servidor LDAP.

Nota

Las implementaciones de MongoDB en Windows pueden usar --ldapBindWithOSDefaults en lugar de --ldapQueryUser y --ldapQueryPassword. No puedes especificar --ldapQueryUser y --ldapBindWithOSDefaults al mismo tiempo.

--ldapQueryPassword=<string | array>

Disponible solamente en MongoDB Enterprise.

La contraseña utilizada para enlazarse a un servidor LDAP al usar --ldapQueryUser. Debes usar --ldapQueryPassword con --ldapQueryUser.

Si no está configurado, mongoldap no intenta conectarse al servidor LDAP.

Se puede configurar esta opción en un mongoldap en ejecución usando setParameter.

El comando ldapQueryPassword setParameter acepta una string o un arreglo de strings. Si ldapQueryPassword se establece en un arreglo, MongoDB intenta cada contraseña en orden hasta que una funcione. Utiliza un arreglo de contraseñas para cambiar la contraseña de la cuenta LDAP sin tiempo de inactividad.

Nota

Las implementaciones de MongoDB en Windows pueden usar --ldapBindWithOSDefaults en lugar de --ldapQueryUser y --ldapQueryPassword. No puedes especificar --ldapQueryPassword y --ldapBindWithOSDefaults al mismo tiempo.

--ldapBindWithOSDefaults=<bool>

Por defecto: false

Disponible solo en MongoDB Enterprise para la plataforma Windows.

Permite que mongoldap se autentique o vincule mediante sus credenciales de inicio de sesión de Windows al conectarse al servidor LDAP.

Solo es requerido si:

Utilice --ldapBindWithOSDefaults para reemplazar --ldapQueryUser y --ldapQueryPassword.

--ldapBindMethod=<string>

Por defecto: simple

Disponible solamente en MongoDB Enterprise.

El método que mongoldap utiliza para autenticarse en un servidor LDAP. Utilícelo con --ldapQueryUser y --ldapQueryPassword para conectarse al servidor LDAP.

--ldapBindMethod admite los siguientes valores:

Valor
Descripción

simple

mongoldap usa autenticación simple.

sasl

mongoldap utiliza el protocolo SASL para la autenticación.

Si especifica sasl, puede configurar los mecanismos SASL disponibles mediante --ldapBindSaslMechanisms. mongoldap por defecto utiliza el mecanismo DIGEST-MD5.

--ldapBindSaslMechanisms=<string>

Por defecto: DIGEST-MD5

Disponible solamente en MongoDB Enterprise.

Una lista separada por comas de los mecanismos SASL que mongoldap puede utilizar al autenticarse en el servidor LDAP. El mongoldap y el servidor LDAP deben coincidir en al menos un mecanismo. mongoldap carga dinámicamente cualquier librería de mecanismos SASL instalada en la máquina host en tiempo de ejecución.

Instale y configure las librerías adecuadas para los mecanismos SASL seleccionados tanto en el mongoldap host como en el host del servidor LDAP remoto. Su sistema operativo puede incluir ciertas librerías SASL por defecto. Consulte la documentación asociada con cada mecanismo SASL para obtener orientación sobre la instalación y configuración.

Importante

En los host con Cyrus SASL 2.1.28 o posterior, MongoDB no admite LDAP SASL binding con el mecanismo DIGEST-MD5. Si establece security.ldap.bind.method en sasl y especifica DIGEST-MD5 en security.ldap.bind.saslMechanisms, mongod y mongos no se inician.

Para obtener más información y alternativas, consulte DIGEST-MD5 no compatible con Cyrus SASL 2.1.28 y versiones posteriores.

Si se utiliza el mecanismo SASL GSSAPI para la autenticación Kerberos en implementaciones autogestionadas, verifica lo siguiente para la máquina host mongoldap:

Linux
Windows
Al conectarse a un servidor de Active Directory, la configuración de Kerberos de Windows genera automáticamente un Ticket de Concesión de Tickets (Ticket-Granting-Ticket) cuando el usuario inicia sesión en el sistema. Configure --ldapBindWithOSDefaults en true para permitir que mongoldap utilice las credenciales generadas al conectarse al servidor de Active Directory y ejecutar consultas.

Establezca --ldapBindMethod en sasl para usar esta opción.

Nota

Para obtener una lista completa de los mecanismos SASL, se debe consultar el listado de IANA. Se debe consultar la documentación del servicio LDAP o Active Directory para identificar los mecanismos SASL compatibles con el servicio.

MongoDB no es una fuente de bibliotecas de mecanismos SASL, ni la documentación de MongoDB es una fuente definitiva para instalar o configurar cualquier mecanismo SASL. Para obtener documentación y soporte, consulte al proveedor o propietario de la biblioteca de mecanismos SASL.

Para obtener más información sobre SASL, consulte los siguientes recursos:

--ldapTransportSecurity=<string>

Por defecto: tls

Disponible solamente en MongoDB Enterprise.

Por defecto, mongoldap crea una conexión segura TLS/SSL al servidor LDAP.

Para las implementaciones de Linux, debe configurar las opciones adecuadas de TLS en el archivo /etc/openldap/ldap.conf. El administrador de paquetes de su sistema operativo crea este archivo como parte de la instalación de MongoDB Enterprise, mediante la dependencia libldap. Consulte la documentación para TLS Options en la documentación ldap.conf de OpenLDAP para obtener instrucciones más completas.

Para la implementación de Windows, debe agregar los certificados CA del servidor LDAP a la herramienta de gestión de certificados de Windows. El nombre exacto y la funcionalidad de la herramienta pueden variar según la versión del sistema operativo. Consulte la documentación de su versión de Windows para obtener más información sobre la gestión de certificados.

Establezca --ldapTransportSecurity en none para desactivar TLS/SSL entre mongoldap y el servidor LDAP.

Advertencia

Si se establece --ldapTransportSecurity en none, se transmite información en texto plano y posiblemente credenciales entre mongoldap y el servidor LDAP.

--ldapTimeoutMS=<int>

Por defecto: 10000

Disponible solamente en MongoDB Enterprise.

La cantidad de tiempo, en milisegundos, que mongoldap debe esperar para que un servidor LDAP responda a una solicitud.

Incrementar el valor de --ldapTimeoutMS puede evitar la falla de conexión entre el servidor MongoDB y el servidor LDAP, si la causa de la falla es un tiempo de espera de conexión. Disminuir el valor de --ldapTimeoutMS reduce el tiempo que MongoDB espera una respuesta del servidor LDAP.

--ldapUserToDNMapping=<string>

Disponible solamente en MongoDB Enterprise.

Asocia el nombre de usuario proporcionado a mongoldap para la autenticación con un nombre distinguido (nombre distinguido) de LDAP. Es posible que necesites utilizar --ldapUserToDNMapping para transformar un nombre de usuario en un nombre distinguido LDAP en los siguientes casos:

  • Realizar autenticación LDAP con enlace simple de LDAP, donde los usuarios se autentican en MongoDB con nombres de usuario que no son nombres distinguidos completos de LDAP.

  • Utilizando un LDAP authorization query template que requiere un nombre distinguido.

  • Transformando los nombres de usuario de los clientes que se autentican en Mongo DB utilizando diferentes mecanismos de autenticación, por ejemplo, X.509, kerberos) a un nombre distinguido completo de LDAP para su autorización.

--ldapUserToDNMapping espera una cadena JSON entre comillas que represente un arreglo ordenado de documentos. Cada documento contiene una expresión regular match y una plantilla substitution o ldapQuery utilizada para transformar el nombre de usuario entrante.

Cada documento en el arreglo tiene la siguiente forma:

{
match: "<regex>"
substitution: "<LDAP DN>" | ldapQuery: "<LDAP Query>"
}
Campo
Descripción
Ejemplo

match

Una expresión regular (regex) con formato ECMAScript para hacer coincidir con un nombre de usuario proporcionado. Cada sección entre paréntesis representa un grupo de captura de regex utilizado por substitution o ldapQuery.

"(.+)ENGINEERING" "(.+)DBA"

substitution

Una plantilla de formato de nombre distinguido (DN) de LDAP que convierte el nombre de autenticación que coincide con la expresión regular match en un DN de LDAP. Cada valor numérico encerrado entre llaves se reemplaza por el grupo de captura de expresión regular correspondiente extraído del nombre de usuario de autenticación mediante la expresión regular match.

El resultado de la sustitución debe ser una string escapada RFC4514.

"cn={0},ou=engineering, dc=example,dc=com"

ldapQuery

Plantilla de formato de consulta LDAP que inserta el nombre de autenticación que coincide con la expresión regular match en una URI de consulta LDAP codificada según RFC4515 y RFC4516. Cada valor numérico entre llaves se reemplaza por el grupo de captura de expresión regular correspondiente, extraído del nombre de usuario de autenticación mediante la expresión match. mongoldap ejecuta la consulta contra el servidor LDAP para recuperar el DN LDAP del usuario autenticado. mongoldap requiere exactamente un resultado para que la transformación sea exitosa; de lo contrario, mongoldap omite esta transformación.

"ou=engineering,dc=example, dc=com??one?(user={0})"

Nota

Una explicación de RFC4514, RFC4515, RFC4516, o las consultas LDAP están excluidas de la documentación de MongoDB. Se debe revisar el RFC directamente o usar el recurso LDAP preferido.

Para cada documento del arreglo, debe usar substitution o ldapQuery. No puede especificar ambos en el mismo documento.

Al realizar la autenticación o autorización, mongoldap recorre cada documento del arreglo en el orden dado, y verifica el nombre de usuario de autenticación contra el filtro match. Si se encuentra una coincidencia, mongoldap aplica la transformación y utiliza el resultado para autenticar al usuario. mongoldap no comprueba el resto de los documentos del arreglo.

Si el documento dado no coincide con el nombre de autenticación proporcionado, mongoldap continúa revisando la lista de documentos para encontrar coincidencias adicionales. Si no se encuentran coincidencias en ningún documento, o si la transformación que el documento describe falla, mongoldap devuelve un error.

mongoldap también devuelven un error si una de las transformaciones no puede evaluarse debido a errores de red o de autenticación con el servidor LDAP. mongoldap rechaza la solicitud de conexión y no revisa los documentos restantes en el arreglo.

A partir de MongoDB 5.0, --ldapUserToDNMapping acepta un string vacío "" o un arreglo vacío [ ] en lugar de un documento de asignación. Si proporciona un string vacío o un arreglo vacío a --ldapUserToDNMapping, MongoDB asignará el nombre de usuario autenticado como el nombre distinguido de LDAP. Anteriormente, proporcionar un documento de mapeo vacío provocaba que el mapeo fallara.

Ejemplo

A continuación, se muestran dos documentos de transformación. El primer documento coincide con cualquier string que termine en @ENGINEERINGy coloca todo lo que proceda al sufijo en un grupo de captura de expresiones regulares. El segundo documento coincide con cualquier string que termine en @DBAy coloca todo lo que preceda al sufijo en un grupo de captura de expresiones regulares.

Importante

Debe pasar el arreglo a --ldapUserToDNMapping como una string.

"[
{
match: "(.+)@ENGINEERING.EXAMPLE.COM",
substitution: "cn={0},ou=engineering,dc=example,dc=com"
},
{
match: "(.+)@DBA.EXAMPLE.COM",
ldapQuery: "ou=dba,dc=example,dc=com??one?(user={0})"
}
]"

Un usuario con el nombre de usuario alice@ENGINEERING.EXAMPLE.COM coincide con el primer documento. El grupo de captura de regex {0} corresponde al string alice. La salida resultante es el nombre distinguido "cn=alice,ou=engineering,dc=example,dc=com".

Un usuario con el nombre de usuario bob@DBA.EXAMPLE.COM coincide con el segundo documento. El grupo de captura de expresiones regulares {0} corresponde al string bob. La salida resultante es la query LDAP "ou=dba,dc=example,dc=com??one?(user=bob)". mongoldap ejecuta esta query en el servidor LDAP, devolviendo el resultado "cn=bob,ou=dba,dc=example,dc=com".

Si --ldapUserToDNMapping no está configurado, mongoldap no aplica ninguna transformación al nombre de usuario al intentar autenticar o autorizar a un usuario en el servidor LDAP.

--ldapAuthzQueryTemplate=<string>

Disponible solamente en MongoDB Enterprise.

Una URL de consulta LDAP relativa formateada conforme a RFC4515 y RFC4516 que mongoldap ejecuta para obtener los grupos LDAP a los que pertenece el usuario autenticado. La consulta es relativa al host o hosts especificados en --ldapServers.

En la URL, puede usar los siguientes tokens de sustitución:

Token de sustitución
Descripción

{USER}

Sustituye el nombre de usuario autenticado o el nombre de usuario transformed si se especifica un username mapping.

{PROVIDED_USER}

Sustituye el nombre de usuario proporcionado, es decir, antes de la autenticación o LDAP transformation.

Al crear la URL de consulta, asegúrese de que el orden de los parámetros LDAP respete RFC4516:

[ dn [ ? [attributes] [ ? [scope] [ ? [filter] [ ? [Extensions] ] ] ] ] ]

Si su query incluye un atributo, mongoldap asume que la query recupera los DNs de los cuales esta entidad es nodo.

Si su query no incluye un atributo, mongoldap asume que la query recupera todas las entidades de las que el usuario es nodo.

Para cada nombre distinguido de LDAP devuelto por la query, mongoldap asigna al usuario autorizado un rol correspondiente en la base de datos admin. Si un rol en la base de datos admin coincide exactamente con el nombre distinguido, mongoldap otorga al usuario los roles y privilegios asignados a ese rol. Consulte el método db.createRole() para obtener más información sobre cómo crear roles.

Ejemplo

Esta query LDAP devuelve cualquier grupo listado en el atributo memberOf del objeto de usuario LDAP.

"{USER}?memberOf?base"

Su configuración LDAP puede no incluir el atributo memberOf como parte del esquema de usuario, puede poseer un atributo diferente para el reporte de la pertenencia a grupos, o puede no rastrear la pertenencia a grupos a través de los atributos. Configure su query con respecto a su propia configuración única de LDAP.

Si no se establece, mongoldap no puede autorizar a los usuarios usando LDAP.

Nota

Una explicación de RFC4515, RFC4516 o de las queries LDAP está fuera del alcance de la documentación de MongoDB. Se debe revisar el RFC directamente o usar el recurso LDAP preferido.