Docs Menu
Docs Home
/ /

Autenticación Kerberos (GSSAPI)

Nota

La autenticación GSSAPI solo está disponible en MongoDB Enterprise Edition.

El mecanismo de autenticación de la API de servicios de seguridad genéricos (GSSAPI) le permite usar su nombre principal de Kerberos para autenticarse en una implementación de MongoDB configurada para la autenticación Kerberos.

Para utilizar Kerberos desde el controlador C++, su implementación de MongoDB ya debe estar configurada para la autenticación Kerberos y su host de aplicación debe poder obtener las credenciales de Kerberos.

El ejemplo de código en esta página utiliza los siguientes marcadores de posición:

  • <kerberos_principal>:Su principal Kerberos para autenticar.

  • <hostname>Nombre de dominio completo (FQDN) de un host mongod o mongos en su implementación. Kerberos requiere FQDN en lugar de direcciones IP o nombres de host cortos para una correcta resolución del dominio.

  • <port>Número de puerto de su implementación de MongoDB. Si omite este parámetro, MongoDB usa el número de puerto predeterminado (27017).

Para utilizar el ejemplo de código en esta página, reemplace estos marcadores de posición con sus propios valores.

Nota

Cuando inserta <kerberos_principal> en una URI de conexión MongoDB, debe codificar en porcentaje el carácter @ como %40.

Antes de poder usar el mecanismo de autenticación Kerberos con el controlador C++, debe configurar su implementación de MongoDB para usar Kerberos. Para configurar su implementación, consulte Documentación de MongoDB Server Kerberos y complete los pasos que allí se describen.

Nota

Para autenticarse con GSSAPI, debe compilar el controlador C de MongoDB con compatibilidad con SASL. Si compila el controlador desde el código fuente, puede habilitar la compatibilidad con SASL con la opción ENABLE_SASL cmake.

Después de configurar su implementación, complete los siguientes pasos para autenticarse mediante GSSAPI:

1

En entornos Unix, primero debe ejecutar el comando kinit para obtener y almacenar en caché un ticket inicial de concesión de tickets. Si utiliza un entorno Windows, puede ir directamente al siguiente paso.

El siguiente ejemplo utiliza 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 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
2

A continuación, configure las siguientes opciones de conexión:

  • kerberos_principal:El principal Kerberos para autenticar.

  • authMechanism:Establecer en "GSSAPI".

  • authMechanismProperties: Opcional. De forma predeterminada, MongoDB usa mongodb como nombre del servicio de autenticación. Para especificar un nombre de servicio diferente, configure esta opción como "SERVICE_NAME: <authentication service name>".

Puede configurar estas opciones a través de parámetros en su 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 con %40, como se muestra en el ejemplo anterior.

Para obtener más información sobre cómo crear un objeto mongocxx::client en el controlador C++, consulte la siguiente documentación de API:

Volver

AWS IAM

En esta página