Saltar al contenido principal
Esta página no se aplica a ClickHouse Cloud. La funcionalidad documentada aquí no está disponible en los servicios de ClickHouse Cloud. Consulta la guía de ClickHouse sobre compatibilidad con Cloud para obtener más información.
El servidor LDAP puede utilizarse para autenticar usuarios de ClickHouse. Hay dos enfoques distintos para hacerlo:
  • Usar LDAP como autenticador externo para usuarios existentes, definidos en users.xml o en las rutas locales de control de acceso.
  • Usar LDAP como directorio externo de usuarios y permitir la autenticación de usuarios no definidos localmente si existen en el servidor LDAP.
En ambos enfoques, debe definirse en la configuración de ClickHouse un servidor LDAP con un nombre interno para que otras partes de la configuración puedan hacer referencia a él.

Definición del servidor LDAP

Para definir el servidor LDAP, debe añadir la sección ldap_servers a config.xml. Ejemplo
Ten en cuenta que puedes definir varios servidores LDAP en la sección ldap_servers con nombres distintos. Parámetros Subparámetros de user_dn_detection Sección con parámetros de búsqueda LDAP para detectar el DN de usuario real del usuario autenticado mediante bind. Esto se usa principalmente en filtros de búsqueda para la posterior asignación de roles cuando el servidor es Active Directory. El DN de usuario resultante se usará al reemplazar las subcadenas {user_dn} donde estén permitidas. De forma predeterminada, el DN de usuario se establece igual que el bind DN, pero una vez realizada la búsqueda, se actualizará con el valor real del DN de usuario detectado.

Autenticador externo LDAP

Se puede usar un servidor LDAP remoto como método para verificar contraseñas de usuarios definidos localmente (usuarios definidos en users.xml o en rutas locales de control de acceso). Para ello, especifique el nombre de un servidor LDAP definido previamente en lugar de password o secciones similares en la definición del usuario. En cada intento de inicio de sesión, ClickHouse intenta hacer “bind” con el DN especificado por el parámetro bind_dn en la definición del servidor LDAP usando las credenciales proporcionadas y, si lo consigue, el usuario se considera autenticado. A esto se le suele llamar método de “simple bind”. Ejemplo
Tenga en cuenta que el usuario my_user corresponde a my_ldap_server. Este servidor LDAP debe configurarse en el archivo principal config.xml, como se describió anteriormente. Cuando está habilitado el Control de acceso y gestión de cuentas basado en SQL, los usuarios autenticados por servidores LDAP también pueden crearse mediante la sentencia CREATE USER.
Query

Directorio externo de usuarios LDAP

Además de los usuarios definidos localmente, se puede usar un servidor LDAP remoto como fuente de definición de usuarios. Para ello, especifique el nombre del servidor LDAP definido previamente (consulte Definición del servidor LDAP) en la sección ldap, dentro de la sección users_directories del archivo config.xml. En cada intento de inicio de sesión, ClickHouse intenta encontrar la definición del usuario localmente y autenticarlo como de costumbre. Si el usuario no está definido, ClickHouse asumirá que la definición existe en el directorio LDAP externo e intentará hacer “bind” con el DN especificado en el servidor LDAP usando las credenciales proporcionadas. Si lo consigue, se considerará que el usuario existe y ha sido autenticado. Al usuario se le asignarán los roles de la lista especificada en la sección roles. Además, se puede realizar una operación LDAP de “search”, y los resultados pueden transformarse y tratarse como nombres de roles para asignárselos al usuario si también está configurada la sección role_mapping. Todo esto implica que el Control de acceso y gestión de cuentas gestionado mediante SQL está habilitado y que los roles se crean con la sentencia CREATE ROLE. Ejemplo Va en config.xml.
Ten en cuenta que my_ldap_server, al que se hace referencia en la sección ldap dentro de la sección user_directories, debe ser un servidor LDAP definido previamente y configurado en config.xml (consulta Definición del servidor LDAP). Parámetros Subparámetros de role_mapping Sección con parámetros de búsqueda LDAP y reglas de mapeo. Cuando un usuario se autentica, mientras sigue conectado a LDAP, se realiza una búsqueda LDAP usando search_filter y el nombre del usuario que ha iniciado sesión. Para cada entrada encontrada durante esa búsqueda, se extrae el valor del atributo especificado. Para cada valor de atributo que tenga el prefijo indicado, se elimina ese prefijo y el resto del valor pasa a ser el nombre de un rol local definido en ClickHouse, que se espera que se haya creado previamente mediante la sentencia CREATE ROLE. Puede haber varias secciones role_mapping definidas dentro de la misma sección ldap. Todas ellas se aplicarán.
Última modificación el 2 de julio de 2026