创建或同步新用户提示用户已存在,如何处理?
背景介绍
为了保障平台安全,旧版本平台上新创建的本地用户或新同步的 IDP 用户不可与平台上已删除的用户(包括本地用户和 IDP 用户)同名。因此,创建本地用户时,用户名与平台上已删除用户同名则无法创建;当对接至平台的 IDP 中的用户与平台上已删除的用户同名时,无法同步同名用户至平台。
因此,平台升级至当前版本后,在平台上创建或同步新的用户时,若新用户名称与平台升级前已删除的用户同名,则无法创建或同步。
说明:自当前版本起,从平台删除用户后,允许创建或同步同名用户。
解决方案
通过手动执行脚本的方式清理平台上已删除的用户信息。
-
清理已删除的 IDP 用户
在 global 集群的任一控制节点上执行以下脚本:
kubectl delete users -l 'auth.cpaas.io/user.connector_id=<IDP 名称>,auth.cpaas.io/user.state=deleted'
示例:
kubectl delete users -l 'auth.cpaas.io/user.connector_id=github,auth.cpaas.io/user.state=deleted'
-
清理已删除的本地用户
在 global 集群的任一控制节点上按先后顺序分别执行脚本 1 和脚本 2。
脚本 1:清理用户密码
kubectl get users -l 'auth.cpaas.io/user.connector_id=local,auth.cpaas.io/user.state=deleted' | awk '{print $1}' | xargs kubectl delete password -n cpaas-system
脚本 2:清理用户
kubectl delete users -l 'auth.cpaas.io/user.connector_id=local,auth.cpaas.io/user.state=deleted'