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 grandes sistemas cliente-servidor. Kerberos permite que MongoDB y sus aplicaciones aprovechen la infraestructura y los procesos de autenticación existentes. MongoDB Enterprise solo es compatible con... ImplementaciónMIT de Kerberos.

La configuración de una implementación de Kerberos queda fuera del alcance de este documento. Este tutorial presupone que se ha configurado una entidad de servicio Kerberos para cada...mongod.exe mongos.exe Instancia y.

Para conjuntos de réplicas y clústeres fragmentados, asegúrese de que su configuración utilice nombres de dominio completos (FQDN) en lugar de direcciones IP o nombres de host sin calificar. Debe usar el FQDN para que GSSAPI resuelva correctamente los dominios Kerberos y le permita 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.

Incluya configuraciones adicionales según corresponda a su 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

Conectemongosha la instanciamongod.exe. Simongod.exetiene--authhabilitado, asegúrese de conectarse con los privilegios necesarios para crear un usuario.

3

Agregue un principal Kerberos,, <username>@<KERBEROS REALM> a MongoDB en la $external base de datos. Especifique el dominio Kerberos en MAYÚSCULAS.La $external base de datos permite a consultar una fuente externa (p. ej., Kerberos) mongod.exe para autenticarse. Para especificar los privilegios del usuario, asígnele roles.

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 agrega el principal Kerberos reportingapp@EXAMPLE.NET con acceso de solo 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 iniciarmongod.execon soporte de Kerberos, establezca el parámetromongod.exeauthenticationMechanismsen 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 independiente con soporte mongod.exe 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 conecta a un sistema cuyo nombre de host coincide con el nombre Kerberos, asegúrese 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 se conecta a un sistema cuyo nombre de host no coincide con el nombre de Kerberos, primero conecte el shellmongoshamongod.exey luego, desde el shellmongosh, utilice el métododb.auth()para autenticarse en la base de datos $external.

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

Para iniciarmongos.execon compatibilidad con Kerberos, configure el parámetromongos.exeauthenticationMechanismsen GSSAPI. Debe iniciarmongos.execomo la cuenta principal del 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)>

Modifique o incluya las mongos.exe opciones adicionales que necesite para su configuración. Por ejemplo, en lugar de usar para la autenticación interna de los miembros del clúster fragmentado, puede usar 509 la --keyFile autenticación de miembros X..

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

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

Ejemplo

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

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

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

  • El mecanismo de autenticación SCRAM de MongoDB:

  • Mecanismo de autenticación de MongoDB para LDAP:

  • Mecanismo de autenticación de MongoDB para X.509:

Especifique los mecanismos de la siguiente manera:

--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, puede validar su configuración con la mongokerberos herramienta.

mongokerberos proporciona un método práctico para verificar la configuración de Kerberos de su plataforma para su uso con MongoDB y para comprobar que la autenticación Kerberos desde un cliente MongoDB funciona correctamente. Consulte la mongokerberos documentación de para obtener más información.

mongokerberos Está disponible únicamente en MongoDB Enterprise.

Volver

Configurar en Linux

En esta página