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

Autenticación Kerberos en implementaciones autogestionadas

MongoDB Enterprise proporciona soporte para la autenticación Kerberos de clientes MongoDB a mongod y mongos instancias. Kerberos es un protocolo estándar de autenticación para grandes sistemas cliente-servidor. Kerberos permite que MongoDB y las aplicaciones aprovechen la infraestructura y los procesos de autenticación existentes. MongoDB Enterprise sólo es compatible con Implementación MIT de Kerberos.

En un sistema basado en Kerberos, cada participante en la comunicación autenticada se conoce como "principal" y cada principal debe tener un nombre único.

Los Principales pertenecen a unidades administrativas llamadas realms. Para cada realm, el Centro de Distribución de Claves de Kerberos (KDC) mantiene una base de datos del principal del realm y de las "claves secretas" asociadas a los principales.

Para una autenticación cliente-servidor, el cliente solicita al KDC un "ticket" para acceder a un activo específico. El KDC utiliza el secreto del cliente y el secreto del servidor para construir el ticket que permite al cliente y al servidor autenticarse mutuamente, manteniendo los secretos ocultos.

Para la configuración de MongoDB para la compatibilidad con Kerberos, son de interés dos tipos de nombres principales: principales de usuario y principales de servicio.

Para autenticarse utilizando Kerberos, debe añadir los principales de usuario de Kerberos a MongoDB en la base de datos $external. Los nombres principales de usuario tienen la forma:

<username>@<KERBEROS REALM>

Para cada usuario que desee autenticar con Kerberos, debe crear un usuario correspondiente en MongoDB en la base de datos $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.

Para ejemplos de cómo agregar a un usuario a MongoDB y cómo autenticarse como dicho usuario, consulte Configurar MongoDB autogestionado con autenticación Kerberos en Linux y Configurar MongoDB autogestionado con autenticación Kerberos en Windows.

Tip

Administrar usuarios y roles en implementaciones autoadministradas para obtener información general sobre la creación y administración de usuarios en MongoDB.

Cada instancia de MongoDB mongod y mongos (o mongod.exe o mongos.exe en Windows) debe tener un principal de servicio asociado. Los nombres principales del servicio tienen la forma:

<service>/<fully qualified domain name>@<KERBEROS REALM>

Para MongoDB, la <service> por defecto es mongodb. Por ejemplo, si m1.example.com es un servidor MongoDB y example.com mantiene el realm EXAMPLE.COM Kerberos, entonces m1 debe tener el nombre principal del servicio mongodb/m1.example.com@EXAMPLE.COM.

Para especificar un valor diferente para <service>, utiliza serviceName durante el inicio de mongod o mongos (o mongod.exe o mongos.exe). mongosh o bien otros clientes también pueden especificar un nombre de principal de servicio diferente usando serviceName.

Los nombres de entidad principal de servicio deben ser accesibles a través de la red utilizando la parte de nombre de dominio completo (FQDN) de su nombre de entidad principal de servicio.

Por default, Kerberos intenta identificar los hosts usando el archivo /etc/krb5.conf antes de usar DNS para resolver hosts.

En Windows, si se ejecuta MongoDB como un servicio, consulte Asignar nombre principal de servicio al servicio MongoDB de Windows.

Los sistemas Linux pueden almacenar las claves de autenticación Kerberos para una entidad de servicio en archivos keytab. Cada instancia mongod Kerberizada y mongos que se ejecute en Linux debe tener acceso a un archivo keytab que contiene las claves para su entidad de servicio.

Para mantener seguros los archivos keytab, utilice permisos de archivo que restrinjan el acceso únicamente al usuario que ejecuta el proceso mongod mongos o.

En Linux, los clientes de MongoDB pueden usar el programa Kerberos kinit para inicializar una caché de credenciales para autenticar al usuario principal ante los servidores.

A diferencia de los sistemas Linux, las instancias de mongod y mongos que funcionan en Windows no requieren acceso a archivos keytab. En su lugar, las instancias mongod y mongos leen sus credenciales del servidor desde un almacén de credenciales específico del sistema operativo.

Sin embargo, desde el Directorio Activo de Windows, puedes exportar un archivo keytab para usarlo en sistemas Linux. Consulta Ktpass para obtener más información.

Para configurar MongoDB para soporte de Kerberos y autenticarse, consulta Configura MongoDB autogestionado con autenticación Kerberos en Linux y Configura MongoDB autogestionado con autenticación Kerberos en Windows.

Cada host que ejecute una instancia de mongod o de mongos debe tener tanto los registros DNS A como PTR para ofrecer resolución directa e inversa.

Sin los registros DNS A y PTR, el host no puede resolver los componentes del dominio Kerberos ni el Centro de distribución de claves (KDC).

Para autenticarse correctamente, la hora del sistema para cada instancia mongod y mongos debe estar dentro de los 5 minutos de la hora del sistema de los otros hosts en la infraestructura Kerberos.

Los siguientes controladores de MongoDB admiten la autenticación de Kerberos:

Aunque MongoDB es compatible con el uso de la autenticación Kerberos junto con otros mecanismos de autenticación, sólo debe agregar los otros mecanismos cuando sea necesario. Consulta la sección Incorporate Additional Authentication Mechanisms en Configura MongoDB autogestionado con autenticación Kerberos en Linux y Configura MongoDB autogestionado con autenticación Kerberos en Windows para obtener más detalles.

El programa mongokerberos proporciona un método conveniente para verificar la configuración de Kerberos de tu plataforma para su uso con MongoDB y para probar que la autenticación Kerberos desde un cliente de MongoDB funciona como se espera. Consulta la documentación de mongokerberos para obtener más información.

mongokerberos está disponible solo en MongoDB Enterprise.

Volver

Autenticar Clientes

En esta página