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.
La GSSAPI El mecanismo de autenticación utiliza tu usuario principal para autenticarse en un servicio de 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.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 á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: (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 DNS directa 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 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: