jira出现多个重复用户的问题

背景

目前jira使用了ldap用户目录,保留了jira自有的用户目录,同时结合CAS做登录认证

CAS同时支持用户名、手机号、邮箱登录

问题

jira中出现了多个重复的账号

原因

原本我们会对每一个入职员工,在LDAP中生成一个账号,账号是用的用户名,比如:zhangsan。

用户在CAS中登录时(使用OIDC协议),使用了手机号登录(比如:13099991111),CAS会将手机号,当做OIDC认证主体的ID返回给jira,

jira在数据库中找不到”13099991111“这个用户ID,会认为是一个新用户,然后就注册到jira,因为属性都是 zhangsan 这个用户的属性,所以看到两个用户的信息都是一样的。

这个时候,数据库里会出现两个账号:

zhangsan:标准账号

13099991111:错误账号

解决方法

既然出现了重复用户,而我们又需要让他们使用标准账号(我们为用户自动生成的账号)登录,就需要把错误账号上的数据切换到”标准账号“上,

修改jira数据库,将用户13099991111的数据切换到zhangsan上面,但是数据那么多(毕竟人家使用了错误账号这么久),不可能一条一条的修改,那么我们换个思路,将两个用户的ID交换一下(一般在数据库里,ID是当做外键存在于数据表里的),

打开jira库,找到 ’app_user‘ 表,将两个用户的 ’user_key‘ 字段交换一下即可,注意以后只能使用”标准账号“登录了哦~

修改前

ID数据位置登录账号True
zhangsanzhangsan标准账号
13099991111这里13099991111错误账号

修改后

ID数据位置登录账号True
13099991111这里zhangsan标准
zhangsan13099991111错误

(因为ID是外键,所以数据位置跟ID保持一致,)

等等,好像还没完,因为CAS登录这里还没修改,不然别人用手机号登录的账号还是错误账号,这点咱们在另一个地方说:

关于CAS客户端通过OIDC协议认证时,使用用户名、手机号登录,返回的principalId不一样的问题

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注