Docs Menu
Docs Home
/ /

mongoldap

MongoDB Enterprise

Nota

A partir de MongoDB 8.0, la autenticación y autorización de LDAP están obsoletas. LDAP está disponible y continuará operando sin cambios durante toda la vida útil de MongoDB 8. LDAP se eliminará en una futura versión principal.

Para más detalles, véase Desuso de LDAP.

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

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

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

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

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

Puede usar esta información al configurar roles de autorización LDAP para el control de acceso de usuarios. Por ejemplo, use mongoldap para garantizar que su configuración permita a los usuarios con privilegios obtener los roles necesarios para realizar las tareas previstas. De igual forma, use mongoldap para garantizar que su configuración impida que los usuarios sin privilegios obtengan roles para acceder al servidor MongoDB o realizar acciones no autorizadas.

Al configurar las 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 descripción completa de todas las opciones de la línea de comandos mongoldap para.

La herramienta es mongoldap parte del paquete MongoDB Database Tools Extra y se puede instalar con MongoDB Server o como una instalación independiente.

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

  • Siga las instrucciones para su plataforma: Instalar MongoDB Enterprise Server

  • Después de completar la instalación, y las demás herramientas incluidas estarán disponibles en la misma ubicación que elmongoldap servidor.

    Nota

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

Para instalar como una instalación mongoldap independiente:

  • Siga el enlace de descarga de MongoDB Enterprise Edition: Centro de descarga deMongoDB Enterprise

  • Seleccione su Platform (sistema operativo) del menú desplegable, luego seleccione el Package apropiado para su plataforma de acuerdo con la siguiente tabla:

    OS
    Paquete

    Linux

    tgz paquete

    Windows

    zip paquete

    macOS

    tgz paquete

  • Una vez descargado, descomprima el archivo y copie a una ubicación en su disco mongoldap duro.

    Tip

    Los usuarios de Linux y macOS pueden copiar a una ubicación del sistema de archivos definida en mongoldap la $PATH variable de entorno,/usr/bin como. Esto permite referenciar mongoldap directamente en la línea de comandos por su nombre, sin necesidad de especificar su ruta completa ni navegar primero a su directorio principal. Consulte la guía de instalación de 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 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 usar para validar el archivo de configuración, que devuelve un informe del procedimiento. Debe especificar un nombre de usuario y una mongoldap contraseña mongoldap para.

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

Si las credenciales proporcionadas son válidas y las opciones LDAP en los archivos de configuración son válidas, el resultado podría ser el 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 admite prefijar el servidor LDAP con srv: y srv_raw:.

Si su cadena de conexión especifica "srv:<DNS_NAME>", mongoldap verifica que "_ldap._tcp.gc._msdcs.<DNS_NAME>" exista para que SRV sea compatible con Active Directory. Si no se encuentra, mongoldap verifica que "_ldap._tcp.<DNS_NAME>" exista para SRV. Si no se encuentra un registro SRV, mongoldap le advierte que use "srv_raw:<DNS_NAME>" en su lugar.

Si su cadena de conexión especifica "srv_raw:<DNS_NAME>", mongoldap realiza una búsqueda de registro 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 la autenticación de proxy LDAP autoadministrada o la autorización LDAP en implementaciones autoadministradas para probar la autenticación o autorización LDAP.

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

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

--user=<string>

Nombre de usuario que utilizará al intentar la autenticación o autorización mongoldap LDAP.

--password=<string>

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

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

El servidor LDAP con el que autentica a los usuarios o determina las acciones que un usuario puede realizar en una base de datos determinada. Si el servidor LDAP especificado tiene instancias replicadas, puede especificar el host y el puerto de cada servidor replicado en una lista delimitada por mongoldap comas.

Si su infraestructura LDAP particiona el directorio LDAP entre varios servidores LDAP, especifique un servidor LDAP o cualquiera de sus instancias replicadas en. MongoDB admite las siguientes --ldapServers referencias LDAP, tal como se define en RFC..4511 4.110 No utilice para listar todos los servidores LDAP de su --ldapServers infraestructura.

Simongoldap no se configura, no puede usar la autenticación o autorización LDAP.

--ldapQueryUser=<string>

Disponible solamente en MongoDB Enterprise.

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

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

Debe utilizar --ldapQueryUser con --ldapQueryPassword.

Simongoldap no se configura, 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 utilizar --ldapQueryPassword con --ldapQueryUser.

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

Puede configurar esta opción en un mongoldap en ejecución mediante setParameter.

El ldapQueryPasswordsetParameter comando acepta una cadena o una matriz de cadenas. Si ldapQueryPassword se establece como una matriz, MongoDB prueba cada contraseña en orden hasta que una funciona correctamente. Use una matriz de contraseñas para transferir 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 se autentique o se vincule utilizando sus credenciales de inicio de sesión de Windows al conectarse al servidor mongoldap LDAP.

Solo es requerido si:

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

--ldapBindMethod=<string>

Por defecto: simple

Disponible solamente en MongoDB Enterprise.

El método se utiliza para autenticarse en mongoldap --ldapQueryUser un servidor LDAP. Úselo con y --ldapQueryPassword para conectarse al servidor LDAP.

--ldapBindMethod admite los siguientes valores:

Valor
Descripción

simple

mongoldap utiliza autenticación simple.

sasl

mongoldap Utiliza el protocolo SASL para la autenticación.

Si sasl especifica, puede configurar los mecanismos SASL disponibles utilizando.--ldapBindSaslMechanisms mongoldap tiene DIGEST-MD5 como valor predeterminado utilizar el mecanismo.

--ldapBindSaslMechanisms=<string>

Por defecto: DIGEST-MD5

Disponible solamente en MongoDB Enterprise.

Una lista separada por comas de los mecanismos SASL mongoldap que puede usar para autenticarse en el servidor LDAP. y ​​el servidor LDAP deben mongoldap mongoldap coincidir en al menos un mecanismo. carga dinámicamente cualquier biblioteca de mecanismos SASL instalada en el host durante la ejecución.

Instale y configure las bibliotecas 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 bibliotecas SASL por defecto. Consulte la documentación de cada mecanismo SASL para obtener instrucciones sobre la instalación y configuración.

Si utiliza el GSSAPI mecanismo SASL para usar con autenticación Kerberos en implementaciones autoadministradas, verifique lo siguiente para la máquina mongoldap host:

Linux
  • La variable de entorno KRB5_CLIENT_KTNAME se resuelve en el nombre de los Archivos Keytab de Linux del cliente para la máquina host. Para obtener más información sobre las variables de entorno de Kerberos, consulta la documentación de Kerberos.

  • La tabla de claves del cliente incluye un principal de usuario para que mongoldap lo use al conectarse al servidor LDAP y ejecutar consultas LDAP.

Windows
Si se conecta a un servidor de Active Directory, la configuración de Kerberos de Windows genera automáticamente un ticket de concesión de tickets cuando el usuario inicia sesión en el sistema. Configure --ldapBindWithOSDefaults en true para permitir mongoldap que use las credenciales generadas al conectarse al servidor de Active Directory y ejecutar consultas.

Establece --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 protegida 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 deshabilitar TLS/SSL entre y el servidor mongoldap LDAP.

Advertencia

La configuración --ldapTransportSecurity de a none mongoldap transmite información de texto sin formato y posiblemente credenciales entre y el servidor LDAP.

--ldapTimeoutMS=<int>

Por defecto: 10000

Disponible solamente en MongoDB Enterprise.

La cantidad de tiempo en milisegundos que debe esperar un servidor LDAP para responder a una mongoldap 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.

Asigna el nombre de usuario proporcionado a para la autenticación a un nombre mongoldap --ldapUserToDNMapping distintivo (DN) LDAP. Es posible que necesite usar para transformar un nombre de usuario en un DN 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.

  • Transformar los nombres de usuario de los clientes que se autentican en Mongo DB mediante diferentes mecanismos de autenticación (por ejemplo, X.509, Kerberos) en un DN LDAP completo para 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

Una 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 y4516 RFC. Cada valor numérico entre llaves se reemplaza por el grupo de captura de expresiones regulares correspondiente, extraído del nombre de usuario de autenticación mediante la match expresión. ejecuta la consulta en el servidor LDAPmongoldap mongoldap para recuperar el DN LDAP del usuario autenticado. requiere solo un resultado mongoldap devuelto para que la transformación sea exitosa, o 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, recorre cada documento de la matriz en el orden indicado, comprobando el nombre de usuario de autenticación conmongoldap el match filtro. Si encuentra una coincidencia, mongoldap aplica la transformación y utiliza el resultado para autenticar al usuario. no comprueba los demás documentos de lamongoldap matriz.

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

mongoldap también devuelve un error si una de las transformaciones no se puede evaluar debido a fallas de red o de autenticación en el servidor LDAP. rechaza la solicitud de conexión y no verifica los documentos restantes en lamongoldap matriz.

A partir de MongoDB,5.0 --ldapUserToDNMapping acepta una "" cadena vacía o una matriz vacía [ ] en lugar de un documento de mapeo. Si se proporciona una cadena vacía o una matriz vacía --ldapUserToDNMapping a, MongoDB mapeará el nombre de usuario autenticado como el DN LDAP. Anteriormente, proporcionar un documento de mapeo vacío causaba un error en el mapeo.

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 nombre bob@DBA.EXAMPLE.COM de usuario coincide con el segundo documento. El grupo de captura de expresiones regulares {0} corresponde a la bob cadena. El resultado es la consulta "ou=dba,dc=example,dc=com??one?(user=bob)" LDAP. ejecuta esta consulta en el servidor LDAP y devuelvemongoldap el "cn=bob,ou=dba,dc=example,dc=com" resultado.

Si no --ldapUserToDNMapping mongoldap está configurado, 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 con formato conforme a RFC4515 y RFC4516 que ejecuta para obtener los grupos LDAP a los que pertenece el usuario autenticado. La consulta es relativa al host o hosts mongoldap especificados --ldapServers en.

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 consulta incluye un atributo, supone que la consulta recupera los DN de los que esta entidad esmongoldap miembro.

Si su consulta no incluye un atributo, supone que la consulta recupera todas las entidades de las que el usuario esmongoldap miembro.

Para cada DN LDAP devuelto por la consulta, asigna al usuario autorizado un rol correspondiente enmongoldap la admin base de datos. Si un rol en la admin base de datos coincide exactamente con el DN, otorga al usuario los rolesmongoldap db.createRole() y privilegios asignados a ese rol. Consulte el método para obtener más información sobre la creación de 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 configura, mongoldap no puede autorizar a los usuarios que utilizan 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.

Volver

mongokerberos

En esta página