Nota
A partir de MongoDB 8.0, la autenticación y autorización de LDAP están desactualizadas. La característica está disponible y continuará operando sin cambios durante toda la vigencia de MongoDB 8. LDAP será eliminado 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 muestra cómo habilitar Atlas para autenticar y autorizar usuarios de bases de datos (no usuarios de Atlas) desde Okta, un proveedor externo de LDAP.
Puedes habilitar solo la autenticación LDAP o puedes habilitar tanto la autenticación como la autorización LDAP:
Si habilitas la autenticación LDAP únicamente, puedes agregar usuarios individuales a Atlas y asignar privilegios de acceso a la base de datos a cada usuario que agregues.
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:
Autenticación de usuarios de bases de datos a partir de la sincronización con Okta Active Directory.
Autenticación de usuarios de bases de datos desde Okta.
Autorizar a los usuarios de bases de datos en los grupos de Okta.
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 autorización de usuarios de bases de datos en grupos de sincronización de Okta Active Directory.
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 de LDAP, debes tener Organization Owner o Project Owner acceso a Atlas.
Procedimientos
Configurar Okta para la autenticación LDAP
El procedimiento siguiente configura Okta para la autenticación con Atlas:
Configura la interfaz LDAP de Okta.
Para obtener más información sobre cómo configurar la interfaz de LDAP de Okta, consulta la documentación de Okta.
Toma nota de tu
<okta-instance-id>. Deberás proporcionarlo en varios lugares durante el proceso de configuración.El nombre de la instancia se encuentra en la URL que usas para iniciar sesión en tu cuenta de Okta:
https://<okta-instance-id>.admin.okta.com
Crea un usuario de vinculación.
Crea un nuevo usuario de Okta para usarlo como usuario de enlace Atlas. El usuario de enlace es un usuario de Okta que utilizarás para realizar una query en la cuenta y autenticar las credenciales de los usuarios de base de datos cuando se conectan a una base de datos de Atlas.
Importante
No uses tu propia cuenta de usuario como usuario de vinculación.
Utilice la siguiente plantilla para determinar el nombre distinguido completo (DN) de su usuario de enlace:
uid=<bind-user-email>,dc=<okta-instance-id>,dc=okta,dc=com Por ejemplo, si su
<bind-user-email>esbind@example.comy su<okta-instance-id>esmdb-example, el nombre distinguido del usuario de enlace es:uid=bind@example.com,ou=users,dc=mdb-example,dc=okta,dc=com
Crear usuarios de base de datos en Okta.
Si aún no existen, crea usuarios en Okta a quienes quieras otorgar acceso a la base de datos:
Navegue hasta su página Okta Personas.
Haga clic en Add Person.
Ingrese los detalles del usuario. Utiliza direcciones de correo electrónico como nombres de usuario.
Nota
Evitar ingresar direcciones de correo electrónico que contengan símbolos de suma (
+). Es posible que la integración de Atlas LDAP encuentre problemas con direcciones de correo electrónico que contengan símbolos de más.Haga clic en Save.
Configurar Atlas para la autenticación LDAP
El siguiente procedimiento permite que Atlas autentique a los usuarios de la base de datos desde Okta 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.
Desliza el botón junto a LDAP Authentication para 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 DN para el usuario similar al siguiente ejemplo para permitir que los clientes proporcionen sus direcciones de correo electrónico en lugar de nombres distinguidos completos cuando se conectan a las bases de datos de Atlas:
[ { "match": "(.+)", "substitution": "uid={0},ou=users,dc=<okta_instance_id>,dc=okta,dc=com" } ]
Haz clic Verify and Saveen.
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ó.
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.
Agrega usuarios de LDAP a Atlas.
Nota
Omitir este paso si desea habilitar la autorización LDAP.
Agrega usuarios gestionados en Okta LDAP a Atlas.
Haga clic en Add New Database User.
Haga clic en LDAP User.
Realice una de las siguientes acciones:
Si no ha ingresado un User to DN Mapping, ingrese el nombre distinguido completo del usuario de LDAP. Sigue esta plantilla:
uid=<user-name>,ou=users,dc=<okta-instance-id>,dc=okta,dc=com Por ejemplo, si tu
<user-name>esjane@example.comy tu<okta-instance-id>esmdb-example, el nombre distinguido de tu usuario es:uid=jane@example.com,ou=users,dc=mdb-example,dc=okta,dc=com Si ingresaste un User to DN Mapping, introduce el nombre de usuario o la dirección de correo electrónico que requiere tu asignación.
Selecciona el nivel de acceso a la base de datos que se concederá al usuario.
Haga clic en Add User.
Configurar Okta para la autorización LDAP
Nota
Omitir esta sección si no se desea habilitar la autorizacion LDAP.
El siguiente procedimiento configura Atlas para autorizar a los usuarios que pertenecen a grupos de acceso a la base de datos Okta 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.
Crea grupos de acceso a bases de datos en Okta.
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.
Cree grupos de Okta independientes para cada nivel de acceso que desee conceder a los usuarios. Por ejemplo, se puede crear un grupo para el acceso de solo lectura a una base de datos, otro para el acceso de lectura y escritura, etc.
Navega a tu página de Okta Groups haciendo clic en Directory y luego en Groups.
Haga clic en Add Group.
Introduce un nombre de grupo, por ejemplo
db-read.Haga clic en Add Group.
Asignar privilegios al usuario de vinculación.
El usuario de enlace debe tener privilegios Read Only Administrator para autorizar usuarios en grupos específicos de Okta y realizar búsquedas LDAP. Para asignar los privilegios de Read Only Administrator al usuario de enlace:
Navega a tu página de Okta Administrators haciendo clic en Security y luego en Administrators.
Haga clic en Add Administrator.
Busca tu usuario enlazado y luego selecciona el rol Read Only Administrator.
Haga clic en Add Administrator.
Configurar Atlas para autorizacion LDAP
Nota
Omitir esta sección si no se desea habilitar la autorizacion LDAP.
El siguiente procedimiento agrega los grupos de acceso a la base de datos Okta 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.
Agrega los grupos de LDAP de acceso a bases de datos a Atlas.
Agrega a Atlas cada uno de los grupos de la base de datos de Okta que creaste. Los nodos de los grupos que agregues están autorizados para realizar las acciones de base de datos otorgadas al 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=groups,dc=<okta-instance-id>,dc=okta,dc=com Por ejemplo, si su
<group-name>esdb-ready su<okta-instance-id>esmdb-example, el nombre distinguido del usuario de enlace es:cn=db-read,ou=groups,dc=mdb-example,dc=okta,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 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 query debe estar conforme a RFC4515.
Si se quiere identificar a qué grupo pertenece un usuario, se puede usar el siguiente Query Template:
ou=groups,dc=<okta-instance-id>,dc=okta,dc=com?dn?sub?(&(objectClass=groupofUniqueNames)(uniqueMember={USER}))
Nota
Es posible que otras plantillas de query también funcionen. Utilizar la plantilla por defecto de {USER}?memberOf?base puede dar lugar a tiempos de búsqueda más prolongados.
Haz clic Verify and Saveen.
Espera a que Atlas implemente tus cambios. Atlas verifica que tus clústeres puedan conectarse, autenticarse y query tu servidor LDAP utilizando los detalles de configuración que proporcionas.
Conéctese a su clúster usando mongosh
El procedimiento siguiente verifica que la autenticación LDAP (y la autorizacion LDAP, si está activada) esté configurada correctamente:
Nota
Cuando la autenticación de 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.
Conéctate a tu clúster con las credenciales de usuario que agregaste en Atlas.
Utiliza mongosh para conectarte a tu clúster. 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.
Solucionar problemas de conexión LDAP
Nota
En Okta, el usuario bind debe tener privilegios Read Only Administrator para realizar búsquedas en LDAP. Asegúrate de que tu usuario bind tenga estos privilegios antes de ejecutar ldapsearch.
Utiliza ldapsearch para determinar si la plantilla de consulta que configuraste para que Atlas use devuelve los DN de usuario tal como esperas. La plantilla de query puede que no devuelva los DNs de usuario correctos si la autenticación LDAP funciona, pero la autorizacion LDAP no.
Utiliza la siguiente plantilla de ldapsearch:
ldapsearch -H 'ldaps://<okta-instance-id>.ldap.okta.com' -D "<bind-user-dn>" -w "<bind-user-pwd>" -b 'ou=groups,dc=<okta-instance-id>,dc=okta,dc=com' '(&(objectClass=groupofUniqueNames)(uniqueMember=<bind-user-dn or group-dn>))
Por ejemplo, si tu bind-user-dn es uid=jane@example.com,ou=users,dc=mdb-example,dc=okta,dc=com y tu <okta-instance-id> es mdb-example, utiliza el siguiente comando:
ldapsearch -H 'ldaps://mdb-example.ldap.okta.com' -D "uid=jane@example.com,dc=mdb-example,dc=okta,dc=com" -w "REDACTED" -b 'ou=groups,dc=mdb-example,dc=okta,dc=com' '(&(objectClass=groupofUniqueNames)(uniqueMember=uid=jane@example.com,ou=users,dc=mdb-example,dc=okta,dc=com))'
Nota
Es posible que otras plantillas de query también funcionen. Utilizar la plantilla por defecto de {USER}?memberOf?base puede dar lugar a tiempos de búsqueda más prolongados.