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,若不是,则修改。

发布了15 篇原创文章 · 获赞 28 · 访问量 1140

猜你喜欢

转载自blog.csdn.net/qq_37865420/article/details/105024422
今日推荐