Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Configurar la autenticación y la autorización con los servicios de dominio de Entra

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.

  • Debes implementar M10 o 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.

Para administrar usuarios o grupos de LDAP, debes tener acceso Organization Owner o Project Owner a Atlas.

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.

  • Contributor privilegios 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 Administrator privilegios en su inquilino de Microsoft Entra ID para habilitar los Servicios de dominio de Microsoft Entra ID.

  • Un nombre de dominio personalizado y enrutable.

1

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

2

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
  1. 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
  2. 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
  3. Guarde el archivo como <your-config-name>.cfg.

  4. 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
  5. 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.

3

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:

  1. 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.

  2. Genere un certificado .pfx con su clave privada y su certificado con openssl. El siguiente comando genera un archivo de certificado .pfx llamado <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 .pfx a los Servicios de dominio de Microsoft Entra ID.

Para generar un certificado .pfx en un sistema Windows, consulta la documentación de Azure.

4

Para habilitar LDAP seguro en los Servicios de Dominio de Microsoft Entra ID, consulta la documentación de Azure.

5

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

203.0.113.77

ldap.aadds.example.com

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

6

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.

7

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.

8

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.

9

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.

10

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.

11

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.

El siguiente procedimiento permite a Atlas autenticar usuarios de bases de datos desde Microsoft Entra ID Domain Services LDAP:

1
  1. 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.

  2. Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.

  3. En la barra lateral, haz clic en Database & Network Access en la sección Security.

  4. En la barra lateral, haga clic en Advanced.

    La página Avanzada se muestra.

2

Nota

Es posible que incurras en costos adicionales al habilitar esta funcionalidad. Consulte Seguridad avanzada.

3

Puedes listar múltiples servidores separados por comas. No se pueden usar puertos diferentes.

4

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

5

Puedes proporcionar certificados autofirmados.

6

Espera a que Atlas implemente tus cambios. Atlas verifica que sus clusters puedan conectarse, autenticar y consultar sus servidores LDAP usando los detalles de configuración que proporcionó.

7
  1. 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.

  2. Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.

  3. 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.

8

Nota

Saltar este paso si deseas habilitar la autorizacion LDAP.

Agregue a Atlas los usuarios administrados en AD de Azure.

  1. Haga clic en Add New Database User.

  2. Haga clic en LDAP User.

  3. Realice una de las siguientes acciones:

    1. 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> es Jane Doe y tu <managed-domain> es aadds.example.com, el nombre distinguido de tu usuario es:

      CN=Jane Doe,ou=AADDC Users,DC=aadds,DC=example,DC=com
    2. Si introdujiste un User to DN Mapping, ingrese el nombre de usuario que su mapeo requiere.

  4. Selecciona el nivel de acceso a la base de datos que se concederá al usuario.

  5. Haga clic en Add User.

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.

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:

1
  1. 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.

  2. Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.

  3. 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.

2

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.

  1. Haga clic en Add New Database User.

  1. 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 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 tu <group-name> es Atlas read only y tu <managed-domain> es aadds.example.com, el nombre distinguido de tu usuario es:

    CN=Atlas read only,OU=AADDC Users,DC=aadds,DC=example,DC=com
  1. Seleccione el nivel de acceso a la base de datos que desea otorgar a los usuarios de este grupo.

  2. Haga clic en Add User.

3
  1. 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.

  2. Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.

  3. En la barra lateral, haz clic en Database & Network Access en la sección Security.

  4. En la barra lateral, haga clic en Advanced.

    La página Avanzada se muestra.

4
5
6

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.

7

Espere a que Atlas implemente los cambios. Atlas verifica que sus clústeres puedan conectarse, autenticarse y consultar su servidor LDAP utilizando la configuración proporcionada.

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:

  • authSource debe ser $external

  • authenticationMechanism debe ser PLAIN

1
  1. 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.

  2. Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.

  3. En la barra lateral, haz clic en Clusters en la sección Database.

La página de clústeres se muestra.

2

Para copiar la cadena de conexión:

  1. Haga clic en Connect.

  2. Haz clic en LDAP y después en Copy.

  3. 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.

3

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.

Volver

LDAP

En esta página