Synopsis
MongoDB Enterprise proporciona mongokerberos para probar el Kerberos y GSSAPI de MongoDB opciones de configuración en una implementación de Kerberos en funcionamiento. mongokerberos se puede usar en uno de dos modos: servidor y cliente.
Modo | Descripción |
|---|---|
Server | En modo servidor, |
Cliente | En modo cliente, |
Los mensajes de error de ambos modos incluyen información sobre errores específicos encontrados y posibles consejos para resolver el error.
mongokerberos admite los siguientes tipos de implementación, tanto en modo servidor como en modo cliente:
Clientes de MongoDB en Linux que autentican implementaciones de MIT Kerberos en plataformas Linux compatibles.
Clientes de MongoDB en Windows realizando autenticación en implementaciones de Active Directory de Windows en plataformas Windows compatibles.
Clientes de MongoDB en Linux que se autentican en implementaciones de Windows Active Directory.
Nota
MongoDB Enterprise y mongokerberos sólo soportan la implementación MIT de Kerberos.
Generalmente, al configurar opciones relacionadas con la autenticación Kerberos, es una buena práctica verificar la configuración con mongokerberos.
mongokerberos es una herramienta de verificación y testing; no edita ningún archivo ni configura ningún servicio. Para configurar Kerberos, consulta la documentación de MIT Kerberos o la documentación de tu plataforma. Para configurar MongoDB para autenticación usando Kerberos, por favor consulta los siguientes tutoriales:
Configura MongoDB autogestionado con la autenticación Kerberos en Linux
Configura MongoDB autogestionado con autenticación Kerberos en Windows.
Este documento ofrece una visión completa de todas las opciones de línea de comandos para mongokerberos.
Instalación
La herramienta mongokerberos es parte del paquete MongoDB Database Tools Extra, y se puede instalar con MongoDB Server o como una instalación autónoma.
Instala con el servidor
Para instalar mongokerberos como parte de una instalación de MongoDB Enterprise Server:
Sigue las instrucciones para su plataforma: Instale MongoDB Enterprise servidor
Una vez completada la instalación,
mongokerberosy las otras herramientas incluidas están disponibles en la misma ubicación que el Servidor.Nota
Para el asistente de instalación de Windows
.msi, el Complete la opción de instalación incluyemongokerberos.
Instalar como autónomo
Para instalar mongokerberos como instalación autónoma:
Sigue el enlace de descarga de MongoDB Enterprise Edition: MongoDB Enterprise Download Center
Selecciona tu Platform (sistema operativo) en el menú desplegable y luego selecciona el Package correspondiente para tu plataforma según la siguiente gráfica:
OSPaqueteLinux
tgzPaqueteWindows
zipPaquetemacOS
tgzPaqueteUna vez descargado, descomprime el fichero y copia
mongokerberosa una ubicación de tu disco duro.Tip
Los usuarios de Linux y macOS pueden querer copiar
mongokerberosa una ubicación del sistema de archivos que esté definida en la variable de entorno$PATH, como/usr/bin. Esto permite hacer referencia amongokerberosdirectamente en la línea de comandos por su nombre, sin necesidad de especificar su ruta completa o navegar primero a su directorio principal. Consulta la guía de instalación de tu plataforma para más información.
Uso
mongokerberos se puede ejecutar en dos modos: servidor y cliente.
Ejecuta mongokerberos desde la línea de comandos del sistema, no en mongosh.
Modo de servidor
La ejecución de mongokerberos en modo de servidor realiza una serie de pasos de verificación contra la configuración Kerberos de tu sistema, incluyendo la comprobación de la resolución adecuada de DNS, la validación del archivo keytab del sistema Kerberos y pruebas contra el principal del servicio MongoDB para tu instancia de mongod o mongos.
Antes de poder utilizar mongokerberos en modo servidor, debe:
Configure Kerberos en su plataforma de acuerdo con la documentación de su plataforma.
Crea el principal de servicio de MongoDB para usarlo con tu instancia
mongodomongos, como se describe en los siguientes pasos:
Una vez que hayas completado estos pasos, puedes ejecutar mongokerberos en modo servidor usando el indicador --server de la siguiente manera:
mongokerberos --server
Si Kerberos se ha configurado correctamente en el servidor, y el principal del servicio se ha creado correctamente, la salida podría ser similar a la siguiente:
Resolving kerberos environment... [OK] Kerberos environment resolved without errors. Verifying DNS resolution works with Kerberos service at <hostname>... [OK] DNS test successful. Getting MIT Kerberos KRB5 environment variables... * KRB5CCNAME: not set. * KRB5_CLIENT_KTNAME: not set. * KRB5_CONFIG: not set. * KRB5_KTNAME: not set. * KRB5_TRACE: not set. [OK] Verifying existence of KRB5 keytab FILE:/etc/krb5.keytab... [OK] KRB5 keytab exists and is populated. Checking principal(s) in KRB5 keytab... Found the following principals for MongoDB service mongodb: * mongodb/server.example.com@SERVER.EXAMPLE.COM Found the following kvnos in keytab entries for service mongodb: * 3 [OK] KRB5 keytab is valid. Fetching KRB5 Config... KRB5 config profile resolved as: <Your Kerberos profile file will be output here> [OK] KRB5 config profile resolved without errors. Attempting to initiate security context with service credentials... [OK] Security context initiated successfully.
El mensaje final indica que la configuración de Kerberos del sistema está lista para ser utilizada con MongoDB. Si se encuentran errores en la configuración, se mostrarán como parte del resultado anterior.
Modo de cliente
Ejecutar mongokerberos en modo cliente prueba la autenticación en el entorno Kerberos de tu sistema, realizando cada paso del proceso de autenticación Kerberos, que incluye la verificación de la correcta resolución DNS, la verificación del archivo keytab del cliente Kerberos y la prueba de si se puede conceder un ticket con éxito. Ejecutar mongokerberos en modo cliente simula el procedimiento de autenticación del cliente de mongosh.
Antes de que puedas usar el mongokerberos en modo cliente, debes haber configurado Kerberos en tu plataforma según la documentación de tu plataforma. Opcionalmente, también puedes optar por ejecutar mongokerberos en modo servidor primero para verificar que la configuración de Kerberos de tu plataforma sea válida antes de utilizar el modo cliente.
Una vez se hayan completado estos pasos, se puede ejecutar mongokerberos en modo cliente para probar la autenticación de usuario, usando el modificador --client de la siguiente manera:
mongokerberos --client --username <username>
Debe proporcionar un nombre de usuario válido, que se utiliza para solicitar un ticket de Kerberos como parte del procedimiento de autenticación. La infraestructura de Kerberos de su plataforma debe estar al tanto de este usuario.
Si las credenciales proporcionadas son válidas, y las opciones de Kerberos en los archivos de configuración son correctas, la salida podría parecerse a lo siguiente:
Resolving kerberos environment... [OK] Kerberos environment resolved without errors. Verifying DNS resolution works with Kerberos service at <hostname>... [OK] DNS test successful. Getting MIT Kerberos KRB5 environment variables... * KRB5CCNAME: not set. * KRB5_CLIENT_KTNAME: not set. * KRB5_CONFIG: not set. * KRB5_KTNAME: not set. * KRB5_TRACE: not set. [OK] Verifying existence of KRB5 client keytab FILE:/path/to/client.keytab... [OK] KRB5 client keytab exists and is populated. Checking principal(s) in KRB5 keytab... [OK] KRB5 keytab is valid. Fetching KRB5 Config... KRB5 config profile resolved as: <Your Kerberos profile file will be output here> [OK] KRB5 config profile resolved without errors. Attempting client half of GSSAPI conversation... [OK] Client half of GSSAPI conversation completed successfully.
El mensaje final indica que la autenticación del cliente se completó correctamente para el usuario proporcionado. Si se encuentran errores durante los pasos de autenticación, se presentarán como parte del resultado anterior.
opciones
--serverEjecuta
mongokerberosen modo servidor para probar que la configuración de Kerberos de tu plataforma es válida para su uso con MongoDB.Consulte Modo de servidor para ver ejemplos de uso y la salida esperada.
--clientEjecuta
mongokerberosen modo cliente para probar la autenticación de cliente en el entorno Kerberos de tu sistema. Se requiere especificar un nombre de usuario válido con--usernamecuando se ejecuta en modo cliente.mongokerberossolicitará un ticket Kerberos para este nombre de usuario como parte del procedimiento de validación. Ejecutarmongokerberosen modo cliente simula el procedimiento de autenticación del cliente demongosh.Consulta Modo Cliente para ver un ejemplo de uso y el resultado esperado.
--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.
mongokerberosleerá los valores desaslHostNameysaslServiceNamede este archivo si está presente. Estos valores pueden especificarse alternativamente con la opción--setParameteren su lugar.Asegúrese de que el archivo de configuración utilice codificación ASCII. La instancia
mongokerberosno es compatible con archivos de configuración con codificación no ASCII, incluido UTF-8.Solo es válido en modo servidor.
--setParameter <options>Establece un parámetro configurable. Puedes especificar varios campos
setParameter.Si bien puedes usar cualquier parámetro admitido con
setParameter,mongokerberossolo verifica el valor de lo siguiente:Si se utiliza la opción
--configcon un archivo de configuración que también contiene estos valores, los valoressetParametersobrescribirán los valores del archivo de configuración.Válido tanto en el modo servidor como en el modo cliente.
--host <hostname>Especifique el nombre de host del servidor MongoDB al que conectar al probar la autenticación.
Si
--hostno se especifica,mongokerberosno realiza ninguna validación DNS del nombre de host (es decir, verificación del registro PTR)Solo válido en el modo cliente.
--username <username>, -u <username>Nombre de usuario para
mongokerberospara usar cuando se intente la autenticación Kerberos. Este valor es necesario cuando se ejecuta en modo cliente.Solo válido en el modo cliente.
--gssapiServiceName <servicename>por defecto: 'MongoDB'
Nombre principal de servicio que se utilizará para autenticarse con GSSAPI/Kerberos.
Solo válido en el modo cliente.
--gssapiHostName <hostname>Nombre de host remoto a utilizar para propósitos de autenticación GSSAPI/Kerberos.
Solo válido en el modo cliente.