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ó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:

  • M0 Clústeres gratuitos

  • Clú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.

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

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

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.

  • Contributor privilegios 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 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, 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

2

Los Servicios de Dominio de Microsoft Entra ID 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 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
  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. 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
  3. Guarde el archivo como <your-config-name>.cfg.

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

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

  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 al cargar el certificado .pfx en 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 Microsoft Entra ID Domain Services,consulte la documentación de Azure.

5

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

203.0.113.77

ldap.aadds.example.com

Para encontrar la dirección IP externa que utiliza el servicio LDAP de Microsoft Entra ID Domain Services,consulte 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 636 entrante para permitir el tráfico LDAPentrante en el puerto, consulte la documentación de Azure.

8

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.

9

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.

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 la función Lectores de directorio al usuario enlazado,consulte la documentación de Azure.

11

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.

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 se apliquen costos adicionales al habilitar esta función.Consulte Seguridad avanzada.

3

Puedes enumerar varios servidores separados por comas. No puedes usar puertos diferentes.

4

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

5

Puede proporcionar certificados autofirmados.

6

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

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

Omita este paso si desea habilitar la autorización LDAP.

Agregar usuarios administrados en Azure AD a Atlas.

  1. Haga clic en Add New Database User.

  2. Haga clic en LDAP User.

  3. Realice una de las siguientes acciones:

    1. 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> es Jane Doe y su <managed-domain> es aadds.example.com, el DN de su 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. Seleccione el nivel de acceso a la base de datos que se otorgará al usuario.

  5. Haga clic en Add User.

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.

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:

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 creó. Los miembros de los grupos que agregue estarán autorizados a realizar las acciones de base de datos asignadas al grupo.

  1. Haga clic en Add New Database User.

  1. 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 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 <group-name> es Atlas read only y su <managed-domain> es aadds.example.com, el DN de su 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 se 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 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.

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. Haga clic en LDAP y, a continuación, haga clic en Copy.

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

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.

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.

Volver

LDAP

En esta página