更改 LDAP OU 后如何更新 gitlab 用户
How can you update gitlab users after changing LDAP OU
我目前正在使用 LDAP 身份验证的环境中使用 gitlab-ce
(综合,在 Ubuntu VM 上)。
LDAP 管理员最近从
之类的东西重新配置了 OU
s
ou=temp, ou=users, ou=baseinfrastructure
到
ou=users, ou=baseinfrastructure
.
现在,当我使用普通用户帐户做一些像 git pull
这样简单的事情时,该用户帐户将被设置为 ldap_blocked
,因为 gitlab 使用 temp
部分查询用户在 cn
字符串中,显然找不到它。
有没有办法更新用户或其他方式,以便 gitlab 不再使用 ou=temp,
部分进行查询?
经过一番搜索,我发现信息存储在 identities
table.
在 gitlab omnibus 中,您可以使用 gitlab-psql
启动数据库控制台。
在我的例子中,验证我做的事情是否正确所需的查询是:
SELECT external_uid, replace(external_uid, 'ou=temp,', '') FROM identities;
然后通过执行实际替换它们:
UPDATE identities SET external_uid = replace(external_uid, 'ou=temp,', '');
对于单个用户,您可以使用 gitlab-rails console
。
找到您的用户:
user = User.find_by_email("user@email")
获取用户 extern_uid
:
user.ldap_identity.extern_uid
上面的打印结果应该类似于:=> "uid=username,ou=people,dc=example,dc=com"
根据需要更新值:
user.ldap_identity.extern_uid = "uid=newusername,ou=newpeople,dc=example,dc=com"
验证:
user.ldap_identity.extern_uid
=> "uid=newusername,ou=newpeople,dc=example,dc=com"
最后保存
user.save
我相信这个脚本 Gitlab rake task to mass update ldap dn 可能对一次更新多个用户有用。
我目前正在使用 LDAP 身份验证的环境中使用 gitlab-ce
(综合,在 Ubuntu VM 上)。
LDAP 管理员最近从
OU
s
ou=temp, ou=users, ou=baseinfrastructure
到
ou=users, ou=baseinfrastructure
.
现在,当我使用普通用户帐户做一些像 git pull
这样简单的事情时,该用户帐户将被设置为 ldap_blocked
,因为 gitlab 使用 temp
部分查询用户在 cn
字符串中,显然找不到它。
有没有办法更新用户或其他方式,以便 gitlab 不再使用 ou=temp,
部分进行查询?
经过一番搜索,我发现信息存储在 identities
table.
在 gitlab omnibus 中,您可以使用 gitlab-psql
启动数据库控制台。
在我的例子中,验证我做的事情是否正确所需的查询是:
SELECT external_uid, replace(external_uid, 'ou=temp,', '') FROM identities;
然后通过执行实际替换它们:
UPDATE identities SET external_uid = replace(external_uid, 'ou=temp,', '');
对于单个用户,您可以使用 gitlab-rails console
。
找到您的用户:
user = User.find_by_email("user@email")
获取用户 extern_uid
:
user.ldap_identity.extern_uid
上面的打印结果应该类似于:=> "uid=username,ou=people,dc=example,dc=com"
根据需要更新值:
user.ldap_identity.extern_uid = "uid=newusername,ou=newpeople,dc=example,dc=com"
验证:
user.ldap_identity.extern_uid
=> "uid=newusername,ou=newpeople,dc=example,dc=com"
最后保存
user.save
我相信这个脚本 Gitlab rake task to mass update ldap dn 可能对一次更新多个用户有用。