Synopsis
MongoDB Enterprise proporciona mongokerberos para probar las opciones de configuración de Kerberos y GSSAPI de MongoDB frente a una implementación de Kerberosen ejecución. mongokerberos se puede utilizar 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 solo admiten la implementación MIT de Kerberos.
En general, 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 prueba y verificación; no edita ningún archivo ni configura ningún servicio. Para configurar Kerberos en su plataforma, consulte la documentación de MIT Kerberos o la documentación de su plataforma. Para configurar MongoDB para autenticarse mediante Kerberos, consulte los siguientes tutoriales:
Este documento proporciona una descripción general completa de todas las opciones de línea de comandos para mongokerberos.
Instalación
La herramienta mongokerberos forma parte del paquete MongoDB Database Tools Extra y se puede instalar con el servidor MongoDB o como una instalación independiente.
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 demás herramientas incluidas estarán disponibles en la misma ubicación que el servidor.
Instalar como autónomo
Para instalar mongokerberos como una instalación independiente:
Siga el enlace de descarga para MongoDB Enterprise Edition: Centro de descargas deMongoDB Enterprise
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, descomprima el archivo y copie
mongokerberosa una ubicación en su disco duro.Tip
Los usuarios de Linux y macOS pueden copiar
mongokerberosa una ubicación del sistema de archivos 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 ni navegar primero a su directorio padre. Consulte la guía de instalación de su plataforma para obtener más información.
Uso
mongokerberos puede ejecutarse en dos modos: servidor y cliente.
Ejecute mongokerberos desde la línea de comandos del sistema, no en mongosh.
Modo de servidor
Al ejecutar mongokerberos en modo servidor, se realiza una serie de pasos de verificación contra la configuración Kerberos de su sistema, incluyendo la comprobación de la resolución DNS correcta, la validación del archivo keytab del sistema Kerberos y la prueba contra el principal de servicio de MongoDB para su instanciamongod o mongos.
Antes de poder usar mongokerberos en modo servidor, debe:
Configure Kerberos en su plataforma de acuerdo con la documentación de su plataforma.
Una vez que haya completado estos pasos, puede ejecutar mongokerberos en modo servidor utilizando la bandera --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
Al ejecutar mongokerberos en modo cliente, se prueba la autenticación contra el entorno Kerberos del sistema, realizando cada paso del proceso de autenticación Kerberos, incluyendo la comprobación de la resolución DNS correcta, la verificación del archivo keytab del cliente Kerberos y la comprobación de si se puede otorgar un ticket correctamente. Al ejecutar mongokerberos en modo cliente, se simula el procedimiento de autenticación del cliente de mongosh.
Antes de poder usar mongokerberos en modo cliente, primero debe configurar Kerberos en su plataforma según la documentación correspondiente. Opcionalmente, también puede ejecutar mongokerberos primero en modo servidor para verificar que la configuración de Kerberos de su plataforma sea válida antes de usar el modo cliente.
Una vez que haya completado estos pasos, puede ejecutar mongokerberos en modo cliente para probar la autenticación del usuario, utilizando la bandera --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 comprobar que la configuración Kerberos de su plataforma es válida para su uso con MongoDB.Consulte el modo servidor para ver ejemplos de uso y el resultado esperado.
--clientEjecuta
mongokerberosen modo cliente para probar la autenticación del cliente contra el entorno Kerberos de su sistema. Requiere especificar un nombre de usuario válido con--usernameal ejecutarlo 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án presentes. Estos valores también pueden especificarse con la opción--setParameter.Asegúrese de que el archivo de configuración utilice codificación ASCII. La instancia
mongokerberosno admite archivos de configuración con codificación que no sea ASCII, incluida UTF-8.Solo es válido en modo servidor.
--setParameter <options>Establece un parámetro configurable. Puedes especificar varios campos
setParameter.Si bien puede usar cualquier parámetro compatible 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 valoressetParameteranulará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 no se especifica
--host,mongokerberosno realiza ninguna validación DNS del nombre de host (es decir, verificación del registro PTR).Válido únicamente en modo cliente.
--username <username>, -u <username>Nombre de usuario que
mongokerberosutilizará al intentar la autenticación Kerberos. Este valor es obligatorio al ejecutar en modo cliente.Válido únicamente en modo cliente.
--gssapiServiceName <servicename>por defecto: 'MongoDB'
Nombre principal de servicio que se utilizará para autenticarse con GSSAPI/Kerberos.
Válido únicamente en modo cliente.
--gssapiHostName <hostname>Nombre de host remoto a utilizar para propósitos de autenticación GSSAPI/Kerberos.
Válido únicamente en modo cliente.