Overview
MongoDB Enterprise Edition incluye mecanismos de autenticación que no están disponibles en MongoDB Community Edition. En esta guía, aprenderá a autenticarse en MongoDB mediante estos mecanismos. Para obtener más información sobre otros mecanismos de autenticación disponibles en MongoDB, consulte Mecanismos 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 boleto que otorga boletos
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, configure 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 con %40, como se muestra en el ejemplo anterior.
Importante
No se puede especificar un valor de propiedad que contenga el carácter coma (,) como una opción de cadena de conexión authMechanismProperties, incluso si el carácter coma está codificado en porcentaje. Para especificar un valor de propiedad authMechanismProperties que contenga una coma, configura la opción utilizando la
Método mongoc_uri_set_mechanism_properties().
SASL SENCILLO
El Mecanismo de Autenticación Simple y Capa de Seguridad (SASL) PLAIN, tal como se define en RFC 4616, es un mecanismo de autenticación mediante nombre de usuario y contraseña que a menudo se utiliza 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: