Nota
Comenzando con MongoDB 8.0, La autenticación y autorización LDAP está obsoleta. La funcionalidad está disponible y seguirá funcionando sin cambios durante toda la vida útil de MongoDB 8. LDAP será removido en una próxima versión importante.
Para obtener más detalles, consulte Desuso de LDAP.
Nota
Esta característica no está disponible para ninguna de las siguientes implementaciones:
Clústeres gratuitos
Clústeres Flex
Para aprender más, Límites.
Esta guía muestra cómo habilitar Atlas para autenticar y autorizar a los usuarios de la base de datos (no a los 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 a 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
Debes implementar
M10o clústeres de Atlas más grandes para habilitar la integración LDAP. La integración LDAP es una característica de Atlas Enterprise.Atlas no admite la integración del inicio de sesión único para usuarios de bases de datos. Para obtener más información sobre la integración del inicio de sesión único para la interfaz web administrativa de Atlas, consulte Configurar la autenticación federada.
Acceso requerido
Para administrar usuarios o grupos de LDAP, debes tener acceso Organization Owner o Project Owner a Atlas.
Requisitos previos
Para integrar Microsoft Entra ID Domain Services LDAP con Atlas, debe tener:
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 inquilino 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 los Servicios de Dominio de Microsoft Entra ID, sigue el Crear un dominio gestionado avanzado tutorial en la Documentación de Azure usando la opción de nombre DNS Custom domain names.
Cuando se configura el dominio administrado, debe asegurarse de anotar el valor introducido en el DNS domain name campo. 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.
Microsoft Entra ID Domain Services utiliza certificados SSL para asegurar LDAP. Tu certificado debe cumplir con los requisitos expuestos 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
Genere una clave 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, consulte 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 seguro de LDAP. Los certificados que incluyen claves privadas utilizan el formato PKCS#12 y utilizan el formato de archivo .pfx. Debes cargar un certificado de este formato a Microsoft Entra ID Domain Services para descifrar el tráfico seguro de LDAP enviado a través de internet público.
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
.pfxcon 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 los Servicios de Dominio de Microsoft Entra ID, consulta 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 Servicios de Dominio Microsoft Entra ID, 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.
Debes permitir todo el tráfico en todos los puertos desde internet pública hacia el puerto 636 para utilizar los Servicios de Dominio Microsoft Entra ID como proveedor de 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.
Habilite la cuenta de usuario vinculada para los servicios de dominio de Microsoft Entra ID.
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.
Asignar la función de Lectores de directorio a la cuenta de usuario vinculada.
Para consultar el ID de Microsoft Entra, el usuario enlazado debe tener los permisos otorgados por la función Lectores de directorio.
Para asignar el rol de Lectores de directorio al usuario de enlace, 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 a Atlas autenticar usuarios de bases de datos desde Microsoft Entra ID Domain Services 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.
Cambie el botón junto LDAP Authentication a On a.
Nota
Es posible que incurras en costos adicionales al habilitar esta funcionalidad. Consulte Seguridad avanzada.
Agregar un usuario al mapeo de DN.
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 en los nombres distintivos 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 Acceso a la base de datos y a la red se muestra.
Agregar usuarios LDAP a Atlas.
Nota
Saltar este paso si deseas habilitar la autorizacion LDAP.
Agregue a Atlas los usuarios administrados en AD de Azure.
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
Sáltate esta sección si no quieres habilitar la autorización LDAP.
Importante
Debe activar la autenticación con LDAP antes de activar la autorización.
Cuando habilitas y configuras la autorización LDAP, los usuarios de la base de datos que solo están configurados para la autenticación LDAP ya no podrán acceder a las bases de datos.
Atlas LDAP autorizacion LDAP utiliza grupos LDAP para determinar si los usuarios están autorizados a realizar 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 bases de datos de ID de Microsoft Entra y asignar usuarios, consulte la documentación de Azure.
Configurar Atlas para la autorización LDAP
Nota
Sáltate esta sección si no quieres habilitar la autorización 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 Acceso a la base de datos y a la red se muestra.
Agregue los grupos LDAP de acceso a la base dedatos 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 en los nombres distintivos 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.
Ingresa una plantilla de consulta en Query Template.
Cuando un usuario intenta realizar una acción, Atlas ejecuta la plantilla de consulta LDAP para obtener los grupos LDAP a los que pertenece el usuario autenticado. Atlas permite la acción si la consulta devuelve al menos un grupo autorizado para realizarla. Atlas no permite la acción si la consulta no devuelve ningún grupo autorizado 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 query debe estar conforme a RFC4515.
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 anular 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.
Utiliza mongosh para conectarte a tu clúster con las credenciales de usuario que agregaste en 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 en los nombres distintivos 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 Microsoft Entra ID Domain Services, el usuario de enlace debe ser miembro del Microsoft Entra ID DC Administrators grupo para realizar búsquedas LDAP. Asegúrese de que el usuario de enlace tenga estos privilegios antes de ldapsearch ejecutar.
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.
Utilice la siguiente plantilla 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 en los nombres distintivos 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.