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.
- Usar LDAP como autenticador externo para usuarios existentes, definidos en
users.xmlo 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.
Definición del servidor LDAP
ldap_servers a config.xml.
Ejemplo
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
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
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
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.
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.