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.
Especificar la autenticación Kerberos (GSSAPI)
Nota
El controlador de Node.js soporta Kerberos en UNIX usando la librería MIT Kerberos y en Windows usando la API SSPI.
El mecanismo de autenticación de GSSAPI utiliza el principal de usuario para autenticarse en un servicio Kerberos.
Puedes especificar este mecanismo de autenticación realizando las siguientes acciones al especificar opciones en tu cadena de conexión:
Establezca el parámetro
authMechanismenGSSAPI.Establece el valor
SERVICE_NAMEen el parámetroauthMechanismPropertiessi se utiliza un valor diferente almongodb.Especifique un valor
SERVICE_REALMen el parámetroauthMechanismPropertiessi se requiere un entorno 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: (por defecto) No realiza la canonización de nombres de hostforward: Realiza una búsqueda directa de DNS para solucionar el hostnameforwardAndReverse: Realiza una búsqueda directa de DNS y luego una búsqueda inversa de ese valor para canonizar el nombre de host
Importante
El parámetro gssapiServiceName está obsoleto y puede eliminarse en futuras versiones del controlador. En su lugar, utiliza authMechanismProperties=SERVICE_NAME:<your service name> en el URI de conexión. Para obtener más información sobre las opciones de autenticación para una cadena de conexión, consulta 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 se refiere al mecanismo de autenticación GSSAPI en lugar de Kerberos porque el driver se autentica mediante GSSAPI RFC-4652, el mecanismo SASL.
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: