Nota
A partir de MongoDB 8.0, la autenticación y autorizaciónLDAP están obsoletas. Esta función seguirá disponible y continuará funcionando sin cambios durante toda la vida útil de MongoDB 8. LDAP se eliminará en una futura versión principal.
Para más detalles, consulta Obsolescencia de LDAP.
Nota
Esta característica no está disponible para ninguna de las siguientes implementaciones:
Clústeres gratuitos
Clústeres Flex
Para obtener más información, consulta Límites.
Esta guía te muestra cómo habilitar Atlas para autenticar y autorizar a usuarios de bases de datos (no usuarios de Atlas) desde Microsoft Entra ID Domain Services, un proveedor LDAP de terceros.
Puedes habilitar solo la autenticación LDAP o puedes habilitar tanto la autenticación como la autorización LDAP:
Si solo habilitas la autenticación LDAP, puedes añadir usuarios individuales a Atlas y asignar privilegios de acceso a bases de datos a cada usuario que añadas.
Si habilitas la autenticación y autorización LDAP, agregas grupos de usuarios a Atlas y asignas privilegios de acceso a la base de datos a cada grupo. Los usuarios heredan los privilegios de acceso en la base de datos del grupo LDAP al que pertenecen.
Atlas admite la autenticación y autorización de usuarios de bases de datos desde los Servicios de Dominio de Microsoft Entra ID.
Limitaciones
Debe implementar
M10o clústeres Atlas más grandes para habilitar la integración LDAP. LDAP integración es una funcionalidad de Atlas Enterprise.Atlas no admite la integración de inicio de sesión único para los usuarios de la base de datos. Para aprender sobre la integración de inicio de sesión único para la interfaz web administrativa de Atlas, consulta Configurar la autenticación federada.
Acceso requerido
Para administrar usuarios o grupos LDAP, debe tener acceso Organization Owner o Project Owner a Atlas.
Requisitos previos
Para integrar Microsoft Entra ID Domain Services LDAP con Atlas, se debe tener lo siguiente:
Una suscripción de Azure. Para obtener una suscripción, visita el portal de Microsoft Azure.
Contributorprivilegios o superiores para tu Azure suscripción para crear los recursos que requiere la integración de LDAP.Un inquilino de Microsoft Entra ID asociado a la suscripción. Para obtener información sobre cómo configurar un inquilino de Microsoft Entra ID, se puede consultar la Documentación de Microsoft Entra ID.
Global Administratorprivilegios en su tenant de Microsoft Entra ID para habilitar los Servicios de dominio de Microsoft Entra ID.Un nombre de dominio personalizado y enrutable.
Procedimientos
Configura los servicios de dominio de Microsoft Entra ID para tu dominio
Configura los Servicios de Dominio de Microsoft Entra ID para tu dominio.
Para configurar Microsoft Entra ID Domain Services, siga el tutorial Crear un dominio administrado avanzado en la documentación de Azure utilizando la opción de nombre DNS Custom domain names.
Cuando configuras tu dominio gestionado, asegúrate de anotar el valor que ingresas en el campo DNS domain name. Este valor es su <managed-domain>. Debes proporcionarlo en varios lugares de este tutorial.
Ejemplo
aadds.ejemplo.com
Obtén un certificado SSL para LDAP seguro.
Los servicios de dominio Entra ID de Microsoft utilizan certificados SSL para proteger LDAP. Su certificado debe cumplir con los requisitos descritos en la documentación de Azure.
Para obtener un certificado, puedes:
Obtenga uno de la autoridad de certificación (CA) pública o empresarial que utiliza su organización.
Debe obtener un certificado de comodín para asegurar que LDAP seguro funcione correctamente con los Servicios de dominio de Microsoft Entra ID.
El nombre del sujeto del certificado debe coincidir con el
<managed-domain>que usaste cuando configuraste Microsoft Entra ID Domain Services.Ejemplo
*.aadds.example.com
Genera un certificado autofirmado. No se recomiendan certificados autofirmados para producción.
Para generar un certificado autofirmado en sistemas MacOS o Linux con fines de prueba:
Nota
Si estás en macOS Catalina, instala la última versión de openssl. Ejecute el siguiente comando para instalar usando Homebrew:
brew install openssl
Genera una llave privada con
openssl. El siguiente comando genera un archivo de clave privada llamado<your-key-name>.key:openssl genrsa -out <your-key-name>.key 2048 Edita la siguiente plantilla de archivo de configuración. Actualiza los atributos en la sección
[dn-param]con valores relacionados con tu organización. Asegúrate de que el nombre del sujeto (CN) coincida con la siguiente plantilla:*.<managed-domain>Ejemplo
*.aadds.example.com
openssl x509 extfile params extensions = extend [req] # openssl req params prompt = no distinguished_name = dn-param [dn-param] # DN fields C = US ST = NY L = New York O = MongoDB OU = Atlas CN = *.aadds.example.com [extend] # openssl extensions subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always keyUsage = digitalSignature,keyEncipherment,keyCertSign extendedKeyUsage=serverAuth,clientAuth Guarde el archivo como
<your-config-name>.cfg.Genere una solicitud de firma de certificado utilizando los archivos clave y de configuración que creó. El siguiente comando genera una solicitud de firma de certificado llamada
<your-csr-name>.csr:openssl req -new -key <your-key-name>.key \ -out <your-csr-name>.csr -config <your-config-name>.cfg \ -extensions extend Genera un certificado autofirmado usando los archivos de clave, configuración y solicitud de firma de certificado que creaste. El siguiente comando genera un archivo de certificado autofirmado nombrado
<your-cert-name>.crt:openssl x509 -req -sha256 -days 365 -in <your-csr-name>.csr \ -signkey <your-key-name>.key -out <your-cert-name>.crt \ -extfile <your-config-name>.cfg
Para generar un certificado autofirmado en un sistema Windows con fines de prueba, consulta la documentación de Azure.
Obtén un certificado SSL que incluya tu clave privada.
Microsoft Entra ID Domain Services utiliza llaves privadas para descifrar el tráfico LDAP seguro. Los certificados que incluyen llaves privadas utilizan el formato PKCS#12 y utilizan el formato de archivo .pfx. Se debe cargar un certificado de este formato en Microsoft Entra ID Domain Services para descifrar el tráfico LDAP seguro enviado a través de la Internet pública.
Para generar un certificado .pfx en sistemas MacOS o Linux:
Guarde su clave pública y su certificado SSL en su máquina local.
Nota
Tu certificado debe usar el formato
PEM.Si su certificado no contiene la clave privada, puede guardarla en un archivo con formato
.key.Genere un certificado
.pfxusando su clave privada y su certificado conopenssl. El siguiente comando genera un archivo de certificado.pfxllamado<your-cert-name>.pfx:openssl pkcs12 -export -out <your-cert-name>.pfx \ -inkey <your-key-name>.key -in <your-cert-name>.crt Cuando se le solicite, introduzca y verifique una contraseña para cifrar el archivo. Deberá introducir esta contraseña para descifrar su clave privada cuando cargue el certificado
.pfxa los Servicios de dominio de Microsoft Entra ID.
Para generar un certificado .pfx en un sistema Windows, consulta la documentación de Azure.
Habilitar LDAP seguro en los Servicios de Dominio de Microsoft Entra ID.
Para habilitar LDAP seguro en Microsoft Entra ID Domain Services, consulte la Documentación de Azure.
Configura tu proveedor de DNS.
Debes configurar tu proveedor de DNS para que Atlas y los nodos de la base de datos puedan conectarse al servidor LDAP en el dominio personalizado que gestiona Microsoft Entra ID Domain Services.
Cree un registro de host para el tráfico LDAP que resuelva un subdominio de su <managed-domain> a la dirección IP externa que usa el servicio LDAP de Microsoft Entra ID Domain Services:
Dirección IP LDAP | Subdominio para tráfico LDAP |
|---|---|
|
|
Para encontrar la dirección IP externa que utiliza el servicio LDAP de Microsoft Entra ID Domain Services, consulta la documentación de Azure.
Agrega tu dominio personalizado a Microsoft Entra ID.
Agrega tu nombre de dominio personalizado a Microsoft Entra ID para crear usuarios que pertenezcan a tu dominio. Después de agregar tu dominio, también debes agregar la información de DNS de Microsoft Entra ID en un registro TXT con tu proveedor de DNS y verificar la configuración.
Para agregar el dominio personalizado a Microsoft Entra ID, se puede consultar la documentación de Azure.
Configurar los servicios de dominio de Microsoft Entra ID para el tráfico LDAP entrante.
Debe permitir todo el tráfico a través de todos los puertos desde Internet público al puerto 636 para utilizar Microsoft Entra ID Domain Services como proveedor LDAP con Atlas.
Para agregar una regla de seguridad de entrada para permitir el tráfico LDAP entrante en el puerto 636, consulte la documentación de Azure.
Crea un usuario de vinculación.
Cree un usuario de enlace. El usuario de enlace es un usuario de Microsoft Entra ID que se utiliza para query la cuenta y para autenticar las credenciales de los usuarios de la base de datos cuando se conectan a una base de datos de Atlas. El usuario de enlace debe pertenecer al dominio personalizado que agregó a Microsoft Entra ID.
Para crear usuarios de Microsoft Entra ID, se puede consultar la documentación de Azure.
Habilita la cuenta de usuario de vinculación para Microsoft Entra ID Domain Services.
Debes generar una contraseña encriptada para el usuario de enlace para la autenticación de Kerberos y NTLM antes de que el usuario de enlace pueda utilizar los Servicios de Dominio de Microsoft Entra ID. Los pasos varían según el tipo de cuenta de usuario de Microsoft Entra ID.
Para aprender a generar hashes de contraseñas para tus usuarios, consulta la documentación de Azure.
Asigna el rol de Lectores de directorios a la cuenta de usuario de vinculación.
Para query Microsoft Entra ID, el usuario de enlace debe tener los permisos otorgados por el Directorio lectores rol.
Para asignar el rol Lectores de directorio al usuario de anclaje, consulta la documentación de Azure.
Crea usuarios de Microsoft Entra ID.
Si aún no existen, crea usuarios en Microsoft Entra ID Domain Services a quienes desees otorgar acceso a la base de datos. Los usuarios deben pertenecer al dominio personalizado que agregaste a Microsoft Entra ID.
Para crear usuarios de Microsoft Entra ID, se puede consultar la documentación de Azure.
Configurar Atlas para la autenticación LDAP
El siguiente procedimiento permite que Atlas autentique a los usuarios de base de datos desde los servicios de dominio de Microsoft Entra ID LDAP:
En Atlas, ve a la página Advanced de tu proyecto.
Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Database & Network Access en la sección Security.
En la barra lateral, haga clic en Advanced.
La página Avanzada se muestra.
Cambia el interruptor junto a LDAP Authentication a On.
Nota
Es posible que incurras en costos adicionales al habilitar esta funcionalidad. Consulte Seguridad avanzada.
Añadir un usuario al mapeo de nombre distinguido.
Agregue una asignación de usuario a nombre distinguido similar al siguiente ejemplo para permitir que los clientes proporcionen su nombre de usuario en lugar de nombres distinguidos completos cuando se conecten a las bases de datos de Atlas:
[ { "match":"(.+)", "substitution":"CN={0},OU=AADDC Users,DC=<managed-domain>,DC=com" } ]
Nota
Para los servicios de dominio de Microsoft Entra ID, los atributos de los nombres distinguidos deben estar en mayúsculas.
Si su <managed-domain> consta de uno o más subdominios, debe añadir un atributo DC (domainComponent) al nombre distinguido de cada uno.
Ejemplo
Si su <managed-domain> es aadds.example.com, los componentes del dominio son:
DC=aadds,DC=example,DC=com
En Atlas, ve a la página Database & Network Access de tu proyecto.
Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Database & Network Access en la sección Security.
La página de acceso a la base de datos y a la red se mostrará después de completar los pasos anteriores.
Agrega usuarios de LDAP a Atlas.
Nota
Saltar este paso si deseas habilitar la autorizacion LDAP.
Agrega usuarios gestionados en Azure AD a Atlas.
Haga clic en Add New Database User.
Haga clic en LDAP User.
Realice una de las siguientes acciones:
Si no has ingresado un User to DN Mapping, ingresa el nombre distinguido completo del usuario LDAP. Sigue esta plantilla:
CN=<user-name>,OU=AADDC Users,DC=<managed>,DC=<domain>,DC=com Por ejemplo, si tu
<user-name>esJane Doey tu<managed-domain>esaadds.example.com, el nombre distinguido de tu usuario es:CN=Jane Doe,ou=AADDC Users,DC=aadds,DC=example,DC=com Si introdujiste un User to DN Mapping, ingrese el nombre de usuario que su mapeo requiere.
Selecciona el nivel de acceso a la base de datos que se concederá al usuario.
Haga clic en Add User.
Agregue los grupos de LDAP de acceso a la base de datos a Atlas
Nota
Omitir esta sección si no se desea activar la autorizacion LDAP.
Importante
Debe activar la autenticación con LDAP antes de activar la autorización.
Cuando habilite y configure la autorización LDAP, los usuarios de base de datos que estén configurados únicamente para la autenticación LDAP ya no podrán acceder a las bases de datos.
La autorización LDAP de Atlas emplea grupos LDAP para determinar si los usuarios están autorizados a ejecutar acciones en la base de datos.
Crea grupos separados de Microsoft Entra ID para cada nivel de acceso que desees conceder a los usuarios. Por ejemplo, creas un grupo para acceso de lectura a una base de datos, otro para acceso de lectura y escritura, y así sucesivamente. Asigna usuarios a grupos en función del nivel de acceso que requiere cada usuario.
Para crear grupos de acceso a la base de datos de Microsoft Entra ID y asignar usuarios, se puede consultar la documentación de Azure.
Configurar Atlas para autorizacion LDAP
Nota
Omitir esta sección si no se desea activar la autorizacion LDAP.
El procedimiento siguiente añade los grupos de acceso a la base de datos de los Servicios de dominio de Microsoft Entra ID a Atlas y habilita la autorización de usuarios de base de datos en Atlas:
En Atlas, ve a la página Database & Network Access de tu proyecto.
Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Database & Network Access en la sección Security.
La página de acceso a la base de datos y a la red se mostrará después de completar los pasos anteriores.
Añadir los grupos de LDAP de acceso a la base de datos a Atlas.
Agregue a Atlas cada uno de los grupos de bases de datos de Azure que haya creado. Los miembros de los grupos que añadas están autorizados para realizar las acciones de base de datos concedidas a ese grupo.
Haga clic en Add New Database User.
Haz clic en LDAP Group y, a continuación, introduce el nombre distinguido completo del grupo que contiene a los usuarios de tu base de datos, incluso si activaste User to DN Mapping. Sigue esta plantilla:
CN=<group-name>,OU=AADDC Users,DC=<managed-domain>,DC=com Nota
Para los servicios de dominio de Microsoft Entra ID, los atributos de los nombres distinguidos deben estar en mayúsculas.
Si su
<managed-domain>consta de uno o más subdominios, debe añadir un atributoDC(domainComponent) al nombre distinguido de cada uno.Ejemplo
Si su
<managed-domain>esaadds.example.com, los componentes del dominio son:DC=aadds,DC=example,DC=comPor ejemplo, si tu
<group-name>esAtlas read onlyy tu<managed-domain>esaadds.example.com, el nombre distinguido de tu usuario es:CN=Atlas read only,OU=AADDC Users,DC=aadds,DC=example,DC=com
Seleccione el nivel de acceso a la base de datos que desea otorgar a los usuarios de este grupo.
Haga clic en Add User.
En Atlas, ve a la página Advanced de tu proyecto.
Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Database & Network Access en la sección Security.
En la barra lateral, haga clic en Advanced.
La página Avanzada se muestra.
Introduce una plantilla de consulta en Query Template.
Cuando un usuario intenta realizar una acción, Atlas ejecuta la plantilla de query LDAP para obtener los grupos LDAP a los que pertenece el usuario autenticado. Atlas permite la acción si la query devuelve al menos un grupo que esté autorizado para realizar la acción. Atlas no permite la acción si la query no devuelve grupos que estén autorizados para realizarla.
Atlas sustituye el nombre de usuario autenticado en el marcador de posición {USER} cuando ejecuta la query. La consulta es relativa al host especificado en Server Hostname.
El formato de la consulta debe ajustarse a RFC.4515
Si desea identificar a qué grupo pertenece un usuario, puedes utilizar el Query Template predeterminado:
{USER}?memberOf?base
Nota
También pueden funcionar otras plantillas de consultas.
Conéctese a su clúster usando mongosh
El siguiente procedimiento verifica que la autenticación LDAP (y la autorización LDAP, si está habilitada) esté configurada correctamente:
Nota
Cuando la autenticación LDAP está habilitada, los usuarios de la base de datos deben modificar los siguientes parámetros en la cadena de conexión para sus clientes:
authSourcedebe ser$externalauthenticationMechanismdebe serPLAIN
En Atlas, ve a la página Clusters de tu proyecto.
Si aún no se muestra, seleccione la organización que contiene su proyecto deseado en el menú Organizations de la barra de navegación.
Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Clusters en la sección Database.
La página de clústeres se muestra.
Utilice mongosh para conectarse a su clúster con las credenciales de usuario que agregó a Atlas.
Para copiar la cadena de conexión:
Haga clic en Connect.
Haz clic en LDAP y después en Copy.
Pega y edita la string con tu Nombre Distinguido de Usuario (DN) y contraseña.
Nota
Conéctate a tu clúster con el nombre distinguido completo de un usuario si la asignación de usuario a nombre distinguido no está habilitada.
Nota
Para los servicios de dominio de Microsoft Entra ID, los atributos de los nombres distinguidos deben estar en mayúsculas.
Si su <managed-domain> consta de uno o más subdominios, debe añadir un atributo DC (domainComponent) al nombre distinguido de cada uno.
Ejemplo
Si su <managed-domain> es aadds.example.com, los componentes del dominio son:
DC=aadds,DC=example,DC=com
Escapar los espacios en los nombres de usuario o de grupo en el nombre distinguido completo del usuario:
--username CN=Jane\ Doe,OU=AADDC\ Users,DC=aadds,DC=example,DC=com
Nota
Si utilizas el nombre distinguido completo de un usuario, incluye solo la OU de AADDC Users (Unidad Organizativa). No incluya otros grupos de Microsoft Entra ID a los que pertenezca el usuario.
Solucionar problemas de conexión LDAP
Nota
En los servicios de dominio Entra ID de Microsoft, el usuario de enlace debe ser nodo del grupo Microsoft Entra ID DC Administrators para realizar búsquedas LDAP. Asegúrate de que tu usuario bind tiene estos privilegios antes de ejecutar ldapsearch.
Usa ldapsearch para determinar si la plantilla de query que se te configuró en Atlas devuelve los DN de usuario tal como esperabas. La plantilla de consulta puede no estar devolviendo los DN de usuarios correctos si la autenticación LDAP funciona, pero la autorización LDAP no.
Utiliza la siguiente plantilla de ldapsearch:
ldapsearch -H 'ldaps://ldap.<managed-domain>.com' -b 'DC=<managed>,DC=<domain>,DC=com' -s sub -D 'CN=<bind-user-dn>,OU=AADDC Users,DC=<managed>,DC=<domain>,DC=com' -w '<REDACTED>' '(&(objectCategory=user)(memberOf=CN=<group-name>,OU=AADDC Users,DC=<managed-domain>,DC=com))'
Nota
Para los servicios de dominio de Microsoft Entra ID, los atributos de los nombres distinguidos deben estar en mayúsculas.
Si su <managed-domain> consta de uno o más subdominios, debe añadir un atributo DC (domainComponent) al nombre distinguido de cada uno.
Ejemplo
Si su <managed-domain> es aadds.example.com, los componentes del dominio son:
DC=aadds,DC=example,DC=com
Por ejemplo, si su bind-user-dn es CN=LDAP Bind User,OU=AADDC Users,DC=aadds,DC=example,DC=com, su <managed-domain> es aadds.example.com y su group-name es Atlas read only, utilice el siguiente comando:
ldapsearch -H 'ldaps://ldap.aadds.example.com' -b 'DC=aadds,DC=example,DC=com' -s sub -D 'CN=LDAP Bind User,OU=AADDC Users,DC=aadds,DC=example,DC=com' -w '<REDACTED>' '(&(objectCategory=user)(memberOf=CN=Atlas read only,OU=AADDC Users,DC=aadds,DC=example,DC=com))'
Nota
También pueden funcionar otras plantillas de consultas.