Ranger同步LDAP用戶報錯401

問題

ranger整合LDAP時,同步用戶失敗,報錯401
ranger usersync日誌如下
在這裏插入圖片描述

問題分析

由上面的日誌可知,同步進程從ldap中查詢的用戶跟在ldap服務器上用命令查詢的用戶一致。也就是說,ldap數據已經查詢完成。
但是在get user mappings時打印401權限報錯
查看源碼,發現是在LdapPolicyMgrUserGroupBuilder.java類中755行出問題的,如下
在這裏插入圖片描述
登陸6080 ranger界面,發現
在這裏插入圖片描述
沒有rangerusersync用戶。
嘗試手動添加時報錯Logged in user is not allowed to create/update user
得知rangerusersync用戶已經登陸,不能create

既然是mysql的問題,就對mysql中ranger庫進行檢查
查詢跟同步相關的ranger數據庫的表
select * from ranger.x_portal_user;
在這裏插入圖片描述
在這裏插入圖片描述
use ranger;
select * from x_portal_user_role;
在這裏插入圖片描述

發現rangerusersync的user_role爲ROLE_KEY_ADMIN不同於其他的internal用戶
ranger數據庫的schema

查詢上面ranger數據庫的schema發現
在這裏插入圖片描述
x_portal_user_role,This table contains role details of users. An user roles may be ‘ROLE_SYS_ADMIN’ or ‘ROLE_USER’. user_id of this table is a foreign key of x_portal_user(ID)
ROLE_KEY_ADMIN這種情況產生原因暫不清楚

嘗試update x_portal_user_role set user_role=‘ROLE_SYS_ADMIN’ where user_id=3;
後再次同步,同步進程正常
在這裏插入圖片描述
在這裏插入圖片描述

問題解決方案

若再遇到usersync日誌401報錯,
可登陸ranger數據庫
select user_role from ranger.x_portal_user_role
where user_id=(select id from ranger.x_user where user_name=”rangerusersync”);

查看x_portal_user_role表中rangerusersync用戶的user_role是否爲ROLE_SYS_ADMIN,若不是,則修改。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章