Overview
El mecanismo de autenticación de la API de Servicios de Seguridad Genéricos (GSSAPI) le permite usar su nombre principal para autenticarse en un servicio Kerberos. Este mecanismo solo se puede usar al autenticarse en MongoDB Enterprise Advanced.
Marcadores de posición de código
Los ejemplos de código de esta página utilizan los siguientes marcadores de posición:
<username>: Su Nombre principalcodificado en URL. Por ejemplo:"username%40REALM.ME"<password>:La contraseña de su usuario Kerberos.<hostname>: La dirección de red de tu implementación de MongoDB.<port>El número de puerto de su implementación de MongoDB. Si omite este parámetro, el controlador usa el número de puerto predeterminado (27017).
Para utilizar los ejemplos de código en esta página, reemplace estos marcadores de posición con sus propios valores.
Uso de la autenticación GSSAPI en su aplicación
Puede especificar el mecanismo de autenticación GSSAPI y proporcionar sus credenciales Kerberos mediante un objeto MongoCredential o como parte de la cadena de conexión. Seleccione el Connection String o la pestaña MongoCredential 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 que el usuario que necesita autenticación.
En Linux, el usuario ha inicializado su keytab usando
kinit username@REALM.COM.
Propiedades adicionales
Puede incluir las siguientes opciones de configuración de GSSAPI en su cadena de conexión o en su objeto MongoCredential.
Nombre de dominio completo
El siguiente ejemplo muestra cómo utilizar el servidor DNS para recuperar el nombre de dominio completo 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 el valor predeterminado mongodb. Reemplace el marcador <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 obtener más información sobre cualquiera de los métodos o tipos analizados en esta página, consulte la siguiente documentación de API: