Synopsis
MongoDB Enterprise proporciona mongokerberos para probar 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 el 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 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 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 prueba y verificación; no edita archivos ni configura servicios. Para configurar Kerberos en su plataforma, consulte la documentación de Kerberos del MIT o la documentación de su plataforma. Para configurar MongoDB para la autenticación mediante Kerberos, consulte 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 es mongokerberos parte del paquete MongoDB Database Tools Extra y se puede instalar con MongoDB Server o como una instalación independiente.
Instala con el servidor
Para instalar como parte de una instalación de MongoDB Enterprise mongokerberos 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 independiente
Para instalar mongokerberos como instalación autónoma:
Sigue el enlace de descarga de MongoDB Enterprise Edition: MongoDB Enterprise Download Center
Seleccione su Platform (sistema operativo) del menú desplegable, luego seleccione el Package apropiado para su plataforma de acuerdo con la siguiente tabla:
OSPaqueteLinux
tgzpaqueteWindows
zippaquetemacOS
tgzpaqueteUna vez descargado, descomprima el archivo y copie a una ubicación en su disco
mongokerberosduro.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.
Cree la entidad de servicio MongoDB para usarla con su instancia o, como se describe en los siguientes
mongodmongospasos:
Una vez que haya completado estos pasos, puede ejecutar en modo servidor usando mongokerberos el --server indicador 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 usarse con MongoDB. Si se detecta algún error en la configuración, se mostrará en el resultado anterior.
Modo de cliente
mongokerberos Al ejecutar en modo cliente, se prueba la autenticación en el entorno Kerberos de su 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 de tabla de claves del cliente Kerberos y la comprobación de si se puede conceder un ticket. Al mongokerberos ejecutar en modo cliente, se simula el procedimiento de autenticación de cliente mongosh de.
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 Kerberos como parte del proceso de autenticación. La infraestructura Kerberos de su plataforma debe reconocer a 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 servidor para ver ejemplos de uso y resultado esperado.
--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.Consulte el Modo Cliente para ver un ejemplo de uso y 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. Se pueden especificar varios campos
setParameter.Si bien puede utilizar cualquier parámetro compatible con,
setParametermongokerberossolo 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.