Nota
Comenzando con MongoDB 8.0, La autenticación y autorizaciónLDAP está obsoleta. Esta función está disponible y seguirá funcionando sin cambios durante la vida útil de MongoDB. 8 LDAP se eliminará en una futura versión principal.
Para más detalles, véase Desuso de LDAP.
Nota
Esta característica no está disponible para ninguna de las siguientes implementaciones:
M0Clústeres gratuitosClústeres Flex
Para obtener más información, consulte Límites.
Esta guía le muestra cómo habilitar Atlas para autenticar y autorizar 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 habilita solo la autenticación LDAP, agregará usuarios individuales a Atlas y asignará privilegios de acceso a la base de datos a cada usuario que agregue.
Si habilita la autenticación y autorización LDAP, agregará grupos de usuarios a Atlas y les asignará privilegios de acceso a la base de datos. 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 Microsoft Entra ID Domain Services.
Limitaciones
Debe implementar
M10o más clústeres de Atlas para habilitar la integración de LDAP. La integración de LDAP es una función 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 LDAP, debe Organization Owner tener acceso o Project Owner a Atlas.
Requisitos previos
Para integrar Microsoft Entra ID Domain Services LDAP con Atlas, debe tener:
Una suscripción a Azure. Para obtenerla, visite el portal de Microsoft Azure.
Contributorprivilegios o mayores para su suscripción de Azure para crear los recursos que requiere la integración 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
Configurar los servicios de dominio de Microsoft Entra ID para su dominio
Configure los servicios de dominio de Microsoft Entra ID para su dominio.
Para configurar los servicios de dominio de Microsoft Entra ID, siga el tutorial Crear un dominio administrado avanzado en la documentación de Azure usando la Custom domain names opción de nombre DNS.
Cuando configure su dominio administrado, asegúrese de anotar el valor que ingresa en el campo DNS domain name Campo. Este valor es tu <managed-domain>. Debes proporcionarlo en varias ocasiones durante este tutorial.
Ejemplo
aadds.ejemplo.com
Obtenga un certificado SSL para LDAP seguro.
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 comodín para garantizar que LDAP seguro funcione correctamente con los servicios de dominio Microsoft Entra ID.
El nombre del sujeto del certificado debe coincidir con el
<managed-domain>que utilizó cuando configuró los Servicios de dominio de Microsoft Entra ID.Ejemplo
*.aadds.ejemplo.com
Genere un certificado autofirmado. No se recomiendan los certificados autofirmados para producción.
Para generar un certificado autofirmado en sistemas MacOS o Linux con fines de prueba:
Nota
Si usa macOS Catalina, instale la última versión de openssl. Ejecute el siguiente comando para instalarlo con 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 Edite la siguiente plantilla del archivo de configuración. Actualice los atributos de la sección
[dn-param]con valores relacionados con su organización. Asegúrese de que el nombre del sujeto (CN) coincida con la siguiente plantilla:*.<managed-domain>Ejemplo
*.aadds.ejemplo.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 con la clave y los archivos 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 Genere un certificado autofirmado con los archivos de clave, configuración y solicitud de firma de certificado que creó. El siguiente comando genera un archivo de certificado autofirmado llamado
<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.
Obtenga un certificado SSL que incluya su 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 certificado SSL en su máquina local.
Nota
Su certificado debe utilizar el formato
PEM.Si su certificado no contiene su clave privada, puede guardar su clave privada en un archivo de 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 al cargar el certificado
.pfxen 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.
Configure su proveedor de DNS.
Debe configurar su proveedor de DNS para que Atlas y los nodos de base de datos puedan conectarse al servidor LDAP en el dominio personalizado que administra 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 utiliza el servicio LDAP de Microsoft Entra ID Domain Services:
Dirección IP LDAP | Subdominio para el tráfico LDAP |
|---|---|
|
|
Para encontrar la dirección IP externa que utiliza el servicio LDAP de Microsoft Entra ID Domain Services,consulte 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 636 entrante para permitir el tráfico LDAPentrante en el puerto, consulte la documentación de Azure.
Crear un usuario vinculado.
Cree un usuario de enlace. Este usuario es un usuario de Microsoft Entra ID que se utiliza para consultar la cuenta y autenticar las credenciales de los usuarios de la base de datos al conectarse a una base de datos 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.
Debe generar un hash de contraseña para el usuario vinculado para la autenticación Kerberos y NTLM antes de que pueda usar 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 sus usuarios,consulte 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 la función Lectores de directorio al usuario enlazado,consulte la documentación de Azure.
Crea usuarios de Microsoft Entra ID.
Si aún no existen, cree los usuarios en los Servicios de Dominio de Microsoft Entra ID a los que desee otorgar acceso a la base de datos. Los usuarios deben 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.
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 se apliquen costos adicionales al habilitar esta función.Consulte Seguridad avanzada.
Agregar un usuario al mapeo de DN.
Agregue una asignación de usuario a DN similar al siguiente ejemplo para permitir que los clientes proporcionen su nombre de usuario en lugar de DN completos cuando se conectan 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 agregar 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
Omita este paso si desea habilitar la autorización LDAP.
Agregar usuarios administrados 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 ha introducido User to DN Mapping un, introduzca el DN completo del usuario LDAP. Siga esta plantilla:
CN=<user-name>,OU=AADDC Users,DC=<managed>,DC=<domain>,DC=com Por ejemplo, si su
<user-name>esJane Doey su<managed-domain>esaadds.example.com, el DN de su 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.
Seleccione el nivel de acceso a la base de datos que se otorgará al usuario.
Haga clic en Add User.
Agregue los grupos LDAP de acceso a la base de datos a Atlas
Nota
Omita esta sección si no desea habilitar la autorización LDAP.
Importante
Debe habilitar la autenticación con LDAP antes de habilitar la autorización.
Cuando habilita y configura 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.
La autorización LDAP de Atlas utiliza grupos LDAP para determinar si los usuarios están autorizados a realizar acciones de base de datos.
Cree grupos de ID de Microsoft Entra independientes para cada nivel de acceso que desee otorgar a los usuarios. Por ejemplo, cree un grupo para el acceso de lectura a una base de datos, otro para el acceso de lectura y escritura, y así sucesivamente. Asigne usuarios a grupos según el nivel de acceso que necesite cada uno.
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
Omita esta sección si no desea habilitar la autorización LDAP.
El siguiente procedimiento agrega los grupos de acceso a la base de datos de Microsoft Entra ID Domain Services a Atlas y habilita la autorización de usuarios de la 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 creó. Los miembros de los grupos que agregue estarán autorizados a realizar las acciones de base de datos asignadas al grupo.
Haga clic en Add New Database User.
Haga clic en LDAP Group y, a continuación, introduzca el DN completo del grupo que contiene los usuarios de su base de datos, incluso si habilitó User to DN Mapping. Siga 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 agregar 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 su
<group-name>esAtlas read onlyy su<managed-domain>esaadds.example.com, el DN de su 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 se 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.
Introduzca una plantilla de consulta Query Template en.
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 consulta debe cumplir con RFC.4515
Si desea identificar a qué grupo pertenece un usuario, puede utilizar el valor predeterminado Query Template:
{USER}?memberOf?base
Nota
También pueden funcionar otras plantillas de consulta.
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.
Utilice para conectarse a su clúster con las credenciales de usuario que agregó a mongosh Atlas.
Para copiar la cadena de conexión:
Haga clic en Connect.
Haga clic en LDAP y, a continuación, haga clic en Copy.
Pegue y edite la cadena con su DN de usuario y contraseña.
Nota
Conéctese a su clúster con el DN completo de un usuario si la asignación de usuario a DN 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 agregar 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
Espacios de escape en nombres de usuario o grupo en el DN completo del usuario:
--username CN=Jane\ Doe,OU=AADDC\ Users,DC=aadds,DC=example,DC=com
Nota
Si usa el DN completo de un usuario, incluya solo la UO AADDC Users (Unidad Organizativa). No incluya otros grupos de ID de Microsoft Entra 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.
Utilice ldapsearch para determinar si la plantilla de consulta que configuró en Atlas devuelve los DN de usuario como esperaba. Es posible que la plantilla de consulta no devuelva los DN de usuario 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 agregar 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 consulta.