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:
username: El principal de Kerbos 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:
const char *uri = "mongodb://mongodbuser%40EXAMPLE.COM@<hostname>:<port>/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:<authentication service name>"); mongoc_client_t *client = mongoc_client_new(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 suele emplear con TLS u otra capa de cifrado. Debes compilar el driver C con soporte SASL para utilizar la autenticación PLAIN SASL.
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 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:
const char *uri = "mongodb://<username>:<password>@<hostname>:<port>/?authMechanism=PLAIN"); mongoc_client_t *client = mongoc_client_new(uri);
Documentación de la API
Para aprender más sobre cómo autenticar tu aplicación en el driver C, consulta la siguiente documentación de la API: