Cette page ne s’applique pas à ClickHouse Cloud. La fonctionnalité décrite ici n’est pas disponible dans les services ClickHouse Cloud.
Consultez le guide ClickHouse Compatibilité Cloud pour plus d’informations.
- Utiliser LDAP comme authentificateur externe pour des utilisateurs existants, définis dans
users.xmlou dans les chemins local du contrôle d’accès. - Utiliser LDAP comme répertoire d’utilisateurs externe et autoriser l’authentification d’utilisateurs non définis localement s’ils existent sur le serveur LDAP.
Définition d’un serveur LDAP
ldap_servers au fichier config.xml.
Exemple
ldap_servers, en leur attribuant des noms distincts.
Paramètres
Sous-paramètres de
user_dn_detection
Section contenant les paramètres de recherche LDAP permettant de détecter le user DN réel de l’utilisateur lié. Ceci est principalement utilisé dans les filtres de recherche pour le mappage ultérieur des rôles lorsque le serveur est Active Directory. Le user DN résultant sera utilisé lors du remplacement des sous-chaînes {user_dn} partout où elles sont autorisées. Par défaut, le user DN est défini comme étant égal au bind DN, mais une fois la recherche effectuée, il sera mis à jour avec la valeur réelle du user DN détecté.
Authentificateur LDAP externe
users.xml ou dans les chemins locaux du contrôle d’accès). Pour cela, indiquez le nom d’un serveur LDAP précédemment défini à la place de password ou de sections similaires dans la définition de l’utilisateur.
À chaque tentative de connexion, ClickHouse essaie d’effectuer un “bind” sur le DN spécifié par le paramètre bind_dn dans la définition du serveur LDAP à l’aide des informations d’identification fournies et, en cas de succès, l’utilisateur est considéré comme authentifié. Cette méthode est souvent appelée méthode de “simple bind”.
Exemple
my_user est associé à my_ldap_server. Ce serveur LDAP doit être configuré dans le fichier principal config.xml, comme décrit précédemment.
Lorsque la fonctionnalité Contrôle d’accès et gestion des comptes pilotée par SQL est activée, les utilisateurs authentifiés par des serveurs LDAP peuvent également être créés à l’aide de l’instruction CREATE USER.
Query
Répertoire d’utilisateurs LDAP externe
ldap, à l’intérieur de la section users_directories du fichier config.xml.
À chaque tentative de connexion, ClickHouse essaie de trouver la définition de l’utilisateur localement et de l’authentifier comme d’habitude. Si l’utilisateur n’est pas défini, ClickHouse part du principe que sa définition existe dans le répertoire LDAP externe et tente d’effectuer un “bind” sur le DN spécifié du serveur LDAP à l’aide des informations d’identification fournies. En cas de succès, l’utilisateur sera considéré comme existant et authentifié. Les rôles de la liste spécifiée dans la section roles seront attribués à l’utilisateur. De plus, une recherche LDAP peut être effectuée, et les résultats peuvent être transformés et traités comme des noms de rôles, puis attribués à l’utilisateur si la section role_mapping est également configurée. Tout cela implique que le Contrôle d’accès et gestion des comptes, piloté par SQL, est activé et que les rôles sont créés à l’aide de l’instruction CREATE ROLE.
Exemple
À placer dans config.xml.
my_ldap_server, référencé dans la section ldap à l’intérieur de la section user_directories, doit être un serveur LDAP défini au préalable et configuré dans config.xml (voir Définition du serveur LDAP).
Paramètres
Sous-paramètres de
role_mapping
Section contenant les paramètres de recherche LDAP et les règles de correspondance. Lorsqu’un utilisateur s’authentifie, alors que la connexion LDAP est toujours active, une recherche LDAP est effectuée à l’aide de search_filter et du nom de l’utilisateur connecté. Pour chaque entrée trouvée lors de cette recherche, la valeur de l’attribut spécifié est extraite. Pour chaque valeur d’attribut ayant le préfixe spécifié, le préfixe est supprimé et le reste de la valeur devient le nom d’un rôle local défini dans ClickHouse, qui doit avoir été créé au préalable par l’instruction CREATE ROLE. Plusieurs sections role_mapping peuvent être définies dans une même section ldap. Elles seront toutes appliquées.