Overview
MongoDB Enterprise Edition incluye mecanismos de autenticación que no están disponibles en MongoDB Community Edition. En esta guía, puede aprender a autenticarse en MongoDB usando estos mecanismos de autenticación. Para conocer los demás mecanismos de autenticación disponibles en MongoDB, consulte mecanismo de autenticación.
Kerberos
La API de servicios de seguridad genéricos (GSSAPI) proporciona una interfaz para la autenticación Kerberos.
Nota
Para autenticarse con GSSAPI, debe compilar el controlador C de MongoDB con soporte para SASL. Si está construyendo el controlador a partir de la fuente, puede habilitar el soporte SASL con el ENABLE_SASL cmake opción.
Completé el siguiente paso para autenticarme con GSSAPI:
Obtener un Ticket-Granting Ticket
En entornos Unix, primero debes ejecutar el comando kinit para obtener y almacenar en caché un ticket inicial de concesión de tickets. Si trabajas en un entorno Windows, puedes pasar al siguiente paso.
El siguiente ejemplo usa el comando kinit para obtener un ticket de concesión de tickets para el principal mongodbuser@EXAMPLE.COM. A continuación, utiliza el comando klist para mostrar el usuario principal y el ticket en la caché de credenciales.
kinit mongodbuser@EXAMPLE.COM mongodbuser@EXAMPLE.COM's Password: klist Credentials cache: FILE:/tmp/krb5cc_1000 Principal: mongodbuser@EXAMPLE.COM Issued Expires Principal Feb 9 13:48:51 2013 Feb 9 23:48:51 2013 krbtgt/mongodbuser@EXAMPLE.COM
Configura las opciones de conexión
A continuación, establezca las siguientes opciones de conexión:
Kerberos principal: El principal de Kerberos para autenticar.authMechanism: Establecer en"GSSAPI".authMechanismProperties: opcional. Por defecto, MongoDB utilizamongodbcomo nombre del servicio de autenticación. Para especificar un nombre de servicio diferente, configure esta opción en"SERVICE_NAME:<authentication service name>".
Puedes establecer estas opciones mediante parámetros en tu URI de conexión, como se muestra en el siguiente ejemplo:
auto uri = mongocxx::uri("mongodb://<kerberos_principal>@<hostname>:<port>/?" "authMechanism=GSSAPI" "&authMechanismProperties=SERVICE_NAME:<authentication service name>"); auto client = mongocxx::client(uri);
Nota
Debe reemplazar el símbolo @ en el principal por %40, como se muestra en el ejemplo anterior.
PLAIN SASL
La capa de autenticación y seguridad simple PLAIN (SASL), según se define en RFC 4616, es un mecanismo de autenticación por nombre de usuario y contraseña que se utiliza frecuentemente con TLS u otra capa de cifrado.
Importante
PLAIN SASL es un mecanismo de autenticación en texto claro. Recomendamos encarecidamente utilizar TLS/SSL con validación de certificado al utilizar PLAIN SASL para autenticarse en MongoDB.
Para aprender cómo habilitar TLS para tu conexión, consulta Configurar seguridad de capa de transporte (TLS).
Para autenticarse con SASL, establezca la opción de conexión authMechanism en PLAIN. Puedes establecer esta opción mediante un parámetro en tu cadena de conexión, como se muestra en el siguiente ejemplo:
auto uri = mongocxx::uri("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "authMechanism=PLAIN&tls=true"); auto client = mongocxx::client(uri);
Documentación de la API
Para obtener más información sobre cómo crear un objeto mongocxx::client en el driver de C++, consulte la siguiente documentación de la API: