ClickHouse開啟ldap認證簡介
環境要求:
安裝且正常運行的ClickHouse 20.8 與OpenLDAP集群。
測試clickhouse-client 用默認用戶可以正常登錄,用ldapsearch指令可以正常用ldap服務器管理員賬號密碼或普通用戶賬號密碼正常連接,且有用戶數據。
例如:
# 通過默認用戶可以登錄ClickHouse clickhouse-client -h 127.0.0.1 --port 9000 # 通過ldapsearch指令可以從加密傳輸端口連接到ldap server ldapsearch -LLL -W -H ldaps://127.0.0.1:636 -D "cn=root,dc=hadoop,dc=com" -b "dc=hadoop,dc=com" # 通過ldapwhoami指令與管理員賬戶密碼可以從加密傳輸端口連接到ldap server,且有正確數據反饋 $ ldapwhoami -x -D "cn=root,ou=Users,dc=hadoop,dc=com" -W -H ldaps://127.0.0.1:636 dn:cn=root,ou=Users,dc=hadoop,dc=com # 通過ldapwhoami指令與用戶密碼可以從加密傳輸端口連接到ldap server,且有正確數據反饋 $ ldapwhoami -x -D "uid=pro1,ou=Users,dc=hadoop,dc=com" -w pro1 dn:uid=pro1,ou=Users,dc=hadoop,dc=com
方案一:
通過配置config.xml與users.xml文件,進行新增用戶,配置ldap認證。可用于配置默認用戶和管理員用戶使用。
注:config.xml中
修改/etc/clickhouse-server/config.xml文件在
加密數據傳輸方式修改
/etc/clickhouse-server/users.xml文件,在
用修改的配置文件重新啟動clickhouse-server
/usr/bin/clickhouse-server --config-file=/etc/clickhouse-server/config.xml
使用OpenLDAP中的用戶username與其對應的密碼登錄ClickHouse
/usr/bin/clickhouse-client --port 7000 --user username --password %TGB6yhn
方案二
開啟ClickHouse?RBAC功能,用SQL命令創建使用LDAP服務器進行認證的用戶,并在/etc/clickhouse-server/config.xml配置相應的LDAP服務配置。此方案適合從LDAP服務器中批量向ClickHouse中導入用戶。
修改/etc/clickhouse-server/config.xml文件在
采用明文數據傳輸方式
加密數據傳輸方式修改
開啟ClickHouse RBAC功能
在?config.xml?中添加?access_control_path?配置項,默認可能已經配置,沒有請添加。
通過 SQL 形式創建的用戶、角色等信息將以文件的形式被保存在這個目錄。在添加完配置后需要重啟服務,重啟之后,在指定目錄下會生成一系列存儲文件:
-rw-r-----. 1 clickhouse clickhouse 1 May 15 20:27 quotas.list -rw-r-----. 1 clickhouse clickhouse 1 May 15 20:27 roles.list -rw-r-----. 1 clickhouse clickhouse 1 May 15 20:27 row_policies.list -rw-r-----. 1 clickhouse clickhouse 1 May 15 20:27 settings_profiles.list -rw-r-----. 1 clickhouse clickhouse 1 May 15 20:39 users.list
在?users.xml?中為默認用戶?default?添加?access_management?配置項
至此配置項完成,重啟clickhouse-server,讓配置生效:
systemctl restart clickhouse-server
此時默認用戶default,就開啟了 SQL 驅動的訪問控制和賬戶管理功能。default 作為默認用戶,默認擁有所有的權限,我們應該將它當做 super admin 使用。所以一般我們會使用 default 用戶創建另外一批 admin 用戶,用于日常管理,例如:
CREATE USER userName IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'password';
使用默認提供的default賬號登陸(default?作為默認用戶,默認擁有所有的權限),新建root賬號:
clickhouse-client -m
登錄成功后進行下列操作:
-- 創建用戶:用戶名 root 密碼 root Clickhouse> CREATE USER root IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'root'; -- 授予root賬號權限: Clickhouse> set allow_introspection_functions=1; Clickhouse> GRANT ALL ON *.* TO root WITH GRANT OPTION; -- 賬號查詢和確認: Clickhouse> show create user root; SHOW CREATE USER root ┌─CREATE USER root────────────────────────────────────┐ │ CREATE USER root IDENTIFIED WITH plaintext_password │ └─────────────────────────────────────────────────────┘
創建完管理員賬戶后,用管理員賬戶登錄,進行相關配置,并限制default用戶權限,直接將users.xml中
# 使用root 用戶登錄ClickHouse clickhouse-client -u root --password root # 創建pro1用戶,設置ldap_server 為config.xml中定義的'my_ldap_server' (該用戶pro1為OpenLDAP中已有的用戶名) Clickhouse> CREATE USER pro1 IDENTIFIED WITH ldap_server BY 'ldap_server_name';
退出root登錄,使用用戶pro1登錄驗證配置是否成功
clickhouse-client -u pro1 --password %TGB6yhn
? config.xml中
host
LDAP服務器主機名或IP,必選參數,不能為空。
port
LDAP服務器端口,如果enable_tls設置為true,則默認為636,否則為389。
auth_dn_prefix, auth_dn_suffix
用于構造要綁定到的DN的前綴和后綴。
實際上,生成的DN將被構造為auth_dn_prefix?+?escape(user_name)?+?auth_dn_suffix字符串。
注意,這意味著auth_dn_suffix通常應將逗號“,”作為其第一個非空格字符。
enable_tls
觸發使用LDAP服務器安全連接的標志。
為純文本(ldap://)協議指定“no”(不推薦)。
為LDAP?over?SSL/TLS?(ldaps://)協議指定“yes”(建議為默認值)。
指定舊版StartTLS協議(純文本(ldap://)協議,升級到TLS)的“starttls”。
tls_minimum_protocol_version
SSL/TLS的最小協議版本。
接受的值是:?'ssl2'、'ssl3'、'tls1.0'、'tls1.1'、'tls1.2'(默認值)。
tls_require_cert
SSL/TLS對端證書校驗行為。
接受的值是:?'never'、'allow'、'try'、'require'(默認值)。
tls_cert_file
證書文件。
tls_key_file
證書密鑰文件。
tls_ca_cert_file
CA證書文件。
tls_ca_cert_dir
CA證書所在的目錄。
tls_cipher_suite
允許加密套件。
ClickHouse
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。