[分享] 探索如何让极狐GitLab主动从LDAP同步用户

极狐GitLab中如果集成LDAP时,一般情况只有当LDAP用户成功登录过一次GitLab后才会创建相应的用户。这一机制主要是为了保证,有很多LDAP用户的企业组织,只有在需要的情况下同步相应的用户到GitLab,以免产生对席位的超用。但也有客户需要能够在GitLab中搜索到从未登录GitLab的LDAP用户。想实现上述需求,通过API的方式即可创建出从未登录过的LDAP用户。这里分享给大家。

具体过程如下:

  1. 假设采用AD作为LDAP服务端,GitLab有LDAP配置如下:
    image
    image

  2. 首先,使用用户接口(Users API | GitLab)查LDAP的关键信息。

  3. 再调用创建用户接口(Users API | GitLab),创建未同步的用户:

{
“username”: “huruizhi”, //gitlab中显示的用户名
“name”: “huruizhi”, //gitlab中显示的用户名
“email”: “dev03@chris.jh”, //LDAP中的邮箱
“provider”: “ldapmain”,
“extern_uid”: “cn=ruizhihu,ou=dev-hk,dc=chris,dc=jh”,
“reset_password”: “true”,
“skip_confirmation”: “true”
}

  1. 检查处理结果,已创建用户如下,并可以通过LDAP完成登录。

image

最后,总结一下,首先从已有的LDAP用户中找到extern_uid的写法,再根据LDAP中的相关配置调整欲创建用户的extern_uid,调用创建接口即可,当然,如果想将标准用户调整为LDAP用户,同理调用修改用户接口(Users API | GitLab

1 个赞