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

Configurar MongoDB autogestionado con autenticación Kerberos en Windows

MongoDB Enterprise admite la autenticación mediante un Servicio Kerberos. Kerberos es un protocolo de autenticación estándar de la industria para sistemas grandes de cliente/servidor. Kerberos permite a MongoDB y a las aplicaciones aprovechar la infraestructura y los procesos de autenticación existentes. MongoDB Enterprise solo admite la Implementación MIT de Kerberos.

Configurar e implementar un despliegue de Kerberos queda fuera del alcance de este documento. Este tutorial asume que se ha configurado un principal de servicio Kerberos para cada mongod.exe mongos.exe Instancia y.

En los sets de réplicas y clústeres, asegúrate de que tu configuración utilice nombres de dominio completamente calificados (FQDN) en lugar de direcciones IP o nombres de host no calificados. Debe usar el FQDN para GSSAPI a fin de resolver correctamente los dominios de Kerberos y permitirle conectarse.

1

Para la incorporación inicial de usuarios de Kerberos, inicie mongod.exe sin soporte de Kerberos.

Si un usuario Kerberos ya está en MongoDB y tiene los privilegios necesarios para crear un usuario, puede iniciar con soporte mongod.exe Kerberos.

Incluye configuraciones adicionales según corresponda para tu implementación.

Nota

mongod y mongos se enlazan a localhost por defecto. Si los miembros de la implementación se ejecutan en hosts diferentes o si se desea que clientes remotos se conecten a la implementación, se debe especificar --bind_ip o net.bindIp.

2

Conecte mongosh a la instancia de mongod.exe. Si mongod.exe tiene --auth habilitado, asegúrate de conectarte con los privilegios necesarios para crear un usuario.

3

Agregue un principal de Kerberos, <username>@<KERBEROS REALM>, a MongoDB en la base de datos $external. Especifica el realm de Kerberos en TODAS LETRAS MAYÚSCULAS. La base de datos $external permite a mongod.exe consultar una fuente externa (por ejemplo, Kerberos) para autenticar. Para especificar los privilegios del usuario, asigna roles al usuario.

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.

El siguiente ejemplo añade el principal Kerberos reportingapp@EXAMPLE.NET con acceso de sólo lectura a la base de datos records:

use $external
db.createUser(
{
user: "reportingapp@EXAMPLE.NET",
roles: [ { role: "read", db: "records" } ]
}
)

Añada otros responsables según sea necesario. Para cada usuario que desee autenticar usando Kerberos, debe crear un usuario correspondiente en MongoDB. Para obtener más información sobre cómo crear y gestionar usuarios, consulta Comandos de gestión de usuarios.

4

Debe iniciar como cuenta mongod.exeprincipal del servicio.

Para iniciar mongod.exe con soporte de Kerberos, establezca el parámetro mongod.exe authenticationMechanisms en GSSAPI:

mongod.exe --setParameter authenticationMechanisms=GSSAPI <additional mongod.exe options>

Incluir opciones adicionales según sea necesario para la configuración. Por ejemplo, si se desea que los clientes remotos se conecten a su implementación o si los miembros de su implementación se ejecutan en hosts diferentes, especificar el --bind_ip.

Por ejemplo, lo siguiente inicia una instancia autónoma mongod.exe con soporte para Kerberos:

mongod.exe --auth --setParameter authenticationMechanisms=GSSAPI --bind_ip localhost,<hostname(s)|ip address(es)>
5

Conecte el mongosh cliente de shell como principal application@EXAMPLE.NET Kerberos.

Puedes conectarte y autenticarte desde la línea de comandos.

Usando cmd.exe:

mongosh.exe --host hostname.example.net --authenticationMechanism=GSSAPI --authenticationDatabase=$external --username reportingapp@EXAMPLE.NET

Usando Windows PowerShell:

mongosh.exe --host hostname.example.net --authenticationMechanism=GSSAPI --authenticationDatabase='$external' --username reportingapp@EXAMPLE.NET

Si se está conectando a un sistema cuyo nombre de host coincide con el nombre de Kerberos, asegúrate de especificar el nombre de dominio completo (FQDN) para la opción --host, en lugar de una dirección IP o un nombre de host no calificado.

Si te conectas a un sistema cuyo nombre de host no coincide con el nombre de Kerberos, primero conecta el mongosh shell a mongod.exe, y luego desde el mongosh shell, utiliza el método db.auth() para autenticarte en la base de datos $external.

use $external
db.auth( { mechanism: "GSSAPI", user: "reportingapp@EXAMPLE.NET" } )

Para iniciar mongos.exe con soporte de Kerberos, establece el parámetro mongos.exe authenticationMechanisms en GSSAPI. Debes iniciar mongos.exe como la cuenta principal de servicio :

mongos.exe --setParameter authenticationMechanisms=GSSAPI <additional mongos options>

Incluir opciones adicionales según sea necesario para la configuración. Por ejemplo, si se desea que los clientes remotos se conecten a su implementación o si los miembros de su implementación se ejecutan en hosts diferentes, especificar el --bind_ip.

Por ejemplo, lo siguiente inicia una instancia con soporte mongos Kerberos:

mongos.exe --setParameter authenticationMechanisms=GSSAPI --configdb shard0.example.net, shard1.example.net,shard2.example.net --keyFile C:\<path>\mongos.keyfile --bind_ip localhost,<hostname(s)|ip address(es)>

Modifica o incluye cualquier opción adicional de mongos.exe según sea necesario para tu configuración. Por ejemplo, en lugar de utilizar --keyFile para la autenticación interna de los nodos del clúster, puedes utilizar la autenticación de nodos X.509 en su lugar.

Utilice setspn.exe para asignar el nombre principal del servicio (SPN) a la cuenta que ejecuta el mongod.exe y el mongos.exe servicio:

setspn.exe -S <service>/<fully qualified domain name> <service account name>

Ejemplo

Si mongod.exe se ejecuta como un servicio llamado mongodb en testserver.mongodb.com con el nombre de la cuenta de servicio mongodtest, asigne el SPN de la siguiente manera:

setspn.exe -S mongodb/testserver.mongodb.com mongodtest

La autenticación de Kerberos (GSSAPI (Kerberos)) puede funcionar junto con:

  • El mecanismo de autenticación SCRAM de MongoDB:

  • El mecanismo de autenticación de MongoDB para LDAP:

  • El mecanismo de autenticación de MongoDB para X.509:

Especifica los mecanismos de la siguiente forma:

--setParameter authenticationMechanisms=GSSAPI,SCRAM-SHA-256

Agregue los demás mecanismos solo si están en uso. Esta configuración no afecta la autenticación interna de los miembros del clúster por parte de MongoDB.

Después de completar los pasos de configuración, puedes validar tu configuración con la mongokerberos herramienta.

mongokerberos proporciona un método conveniente para comprobar la configuración de Kerberos de la plataforma con MongoDB y para verificar que la autenticación Kerberos de un cliente 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

Configurar en Linux

En esta página