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 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 soporte de Kerberos, hay dos tipos de nombres principales de interés: 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

Gestionar usuarios y roles en implementaciones autogestionadas para obtener información general sobre la creación y gestió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 principales del servicio deben ser accesibles en la red utilizando la parte del nombre de dominio completamente calificado (FQDN) de su nombre 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, consulta Asignar nombre principal de servicio al servicio de Windows de MongoDB.

Los sistemas Linux pueden almacenar claves de autenticación Kerberos para un principal de servicio en archivos keytab. Cada instancia de mongod y mongos con Kerberos ejecutándose en Linux debe tener acceso a un archivo keytab que contenga las claves para su principal de servicio.

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

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