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.
Especificar la autenticación Kerberos (GSSAPI)
Nota
El controlador Node.js admite Kerberos en UNIX utilizando la biblioteca MIT Kerberos y en Windows utilizando la API SSPI.
El GSSAPI El mecanismo de autenticación utiliza su principal de usuario para autenticarse en un servicio Kerberos.
Puede especificar este mecanismo de autenticación realizando las siguientes acciones mientras especifica las opciones en su cadena de conexión:
Establezca el parámetro
authMechanismenGSSAPI.Establezca el valor
SERVICE_NAMEen el parámetroauthMechanismPropertiessi utiliza un valor distinto demongodb.Especifique un valor
SERVICE_REALMen el parámetroauthMechanismPropertiessi se requiere un ámbito de servicio personalizado.Especifique un valor
CANONICALIZE_HOST_NAMEen el parámetroauthMechanismPropertiessi se requiere la canonización del nombre de host. Esta propiedad acepta los siguientes valores:none: (Predeterminado) No realiza la canonización del nombre de hostforward:Realiza una búsqueda DNS directa para canonizar el nombre de hostforwardAndReverse:Realiza una búsqueda DNS directa y luego una búsqueda inversa de ese valor para canonizar el nombre de host.
Importante
El gssapiServiceName parámetro está obsoleto y podría eliminarse en futuras versiones del authMechanismProperties=SERVICE_NAME:<your service name> controlador. En su lugar, utilice en la URI de conexión. Para obtener más información sobre las opciones de autenticación para una cadena de conexión, consulte la sección "Opciones de autenticación" de la referencia "Opciones de cadena de conexión" en el Manual del servidor.
El siguiente ejemplo de código se autentica en Kerberos para UNIX usando GSSAPI.
Importante
Siempre codifique URI el principal usando el método encodeURIComponent para garantizar que se analice correctamente.
const { MongoClient } = require("mongodb"); // Replace the placeholder values with the values for your environment in the following lines const clusterUrl = "<cluster_url>"; const principal = encodeURIComponent("<Kerberos principal and realm>"); const serviceRealm = "<Kerberos service realm>"; const canonicalizationSetting = "<canonicalization setting>"; const authMechanismProperties = `SERVICE_REALM:${serviceRealm},CANONICALIZE_HOST_NAME:${canonicalizationSetting}`; const authMechanism = "GSSAPI"; // Connection URI const uri = `mongodb+srv://${principal}@${clusterUrl}/?authMechanism=${authMechanism}&authMechanismProperties=${authMechanismProperties}`; const client = new MongoClient(uri); // Function to connect to the server async function run() { try { // Establish and verify connection await client.db("admin").command({ ping: 1 }); console.log("Connected successfully to server"); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir);
Nota
El método hace referencia al GSSAPI mecanismo de autenticación en lugar de Kerberos porque el controlador se autentica a través de GSSAPI RFC-,4652 el mecanismo SASL.
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: