Overview
El mecanismo de autenticación de la API de Servicios de Seguridad Genéricos (GSSAPI) te permite usar tu nombre principal para autenticarte en un servicio de Kerberos. Solamente se puede utilizar este mecanismo al autenticar en MongoDB Enterprise Advanced.
Marcadores de posición de código
Los ejemplos de código en esta página utilizan los siguientes marcadores de posición:
<username>Su Codificado en URL nombre principal. Por ejemplo:"username%40REALM.ME"<password>: la contraseña de tu usuario de Kerberos.<hostname>: La dirección de red de tu implementación de MongoDB.<port>: El número de puerto de tu implementación de MongoDB. Si omites este parámetro, el driver utiliza el número de puerto por defecto (27017).
Para usar los ejemplos de código en esta página, reemplaza estos marcadores de posición con tus propios valores.
Uso de la autenticación GSSAPI en su aplicación
Puede especificar el mecanismo de autenticación GSSAPI y proporcionar sus credenciales de Kerberos ya sea utilizando un objeto MongoCredential o como parte de la cadena de conexión. Elija el Connection String o MongoCredential pestaña para ver la sintaxis correspondiente:
var mongoClient = new MongoClient( "mongodb://<username>:<password>@<hostname>[:<port>]/?authMechanism=GSSAPI");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<password>"); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.Credential = credential; var mongoClient = new MongoClient(settings);
Tip
Omitir la contraseña
Puedes omitir el parámetro de contraseña si se cumple alguno de los siguientes:
En Windows, el propietario del proceso que ejecuta la aplicación es el mismo usuario que necesita autenticación.
En Linux, el usuario ha inicializado su keytab usando
kinit username@REALM.COM.
Propiedades adicionales
Puedes incluir las siguientes opciones de configuración de GSSAPI tanto en tu cadena de conexión como en tu objeto MongoCredential.
Nombre de dominio completamente calificado
El siguiente ejemplo muestra cómo usar el servidor DNS para recuperar el nombre de dominio completamente calificado del host:
var mongoClient = new MongoClient( "mongodb://<username>:<password>@<hostname>[:<port>]/?authMechanism=GSSAPI&" + "authMechanismProperties=CANONICALIZE_HOSTNAME:true");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<password>"); credential = credential.WithMechanismProperty("CANONICALIZE_HOST_NAME", "true"); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.Credential = credential; var mongoClient = new MongoClient(settings);
Realm
El siguiente ejemplo muestra cómo especificar el realm del usuario cuando es diferente del realm del servicio. Reemplaza el marcador de posición <user's realm> con el realm del usuario Kerberos.
var mongoClient = new MongoClient( "mongodb://<username>:<password>@<hostname>[:<port>]/?authMechanism=GSSAPI&" + "authMechanismProperties=SERVICE_REALM:<user's realm>");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<password>"); credential = credential.WithMechanismProperty("SERVICE_REALM", "<user's realm>"); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.Credential = credential; var mongoClient = new MongoClient(settings);
Nombre del servicio
El siguiente ejemplo muestra cómo especificar el nombre del servicio cuando no es mongodb por defecto. Reemplace el marcador de posición <service name> con el nombre del servicio.
var mongoClient = new MongoClient( "mongodb://<username>:<password>@<hostname>[:<port>]/?authMechanism=GSSAPI&" + "authMechanismProperties=SERVICE_NAME:<service name>");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<password>"); credential = credential.WithMechanismProperty("SERVICE_NAME", "<service name>"); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.Credential = credential; var mongoClient = new MongoClient(settings);
Propiedades múltiples
El siguiente ejemplo muestra cómo especificar múltiples propiedades del mecanismo de autenticación:
var mongoClient = new MongoClient( "mongodb://<username>:<password>@<hostname>[:<port>]/?authMechanism=GSSAPI&" + "authMechanismProperties=SERVICE_NAME:<service name>,SERVICE_REALM:<user's realm>");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<password>"); credential = credential .WithMechanismProperty("SERVICE_REALM", "<user's realm>") .WithMechanismProperty("SERVICE_NAME", "<service name>"); var settings = MongoClientSettings.FromConnectionString("<connection string>"); settings.Credential = credential; var mongoClient = new MongoClient(settings);
Documentación de la API
Para aprender más sobre cualquiera de los métodos o tipos tratados en esta página, consulta la siguiente documentación de la API: