• GitLab先有的用户 ,后期ldap介入,gitlab用户问题


    1. 配置

    1. vi /etc/gitlab/gitlab.rb
    2. gitlab_rails['ldap_enabled'] = true
    3. gitlab_rails['prevent_ldap_sign_in'] = false
    4. gitlab_rails['ldap_servers'] = {
    5. 'main' => {
    6. 'label' => 'LDAP', # 随便自定义
    7. 'host' => 'xxxxxx', # ldap的server地址
    8. 'port' => 389, # ldap端口
    9. 'uid' => 'cn', # 配置为cn或者sn都可以,但要注意用户名称将会以此处配置为依据
    10. 'bind_dn' => 'cn=admin,dc=jettech,dc=com', # 管理员账号
    11. 'password' => '123456', # 管理员密码
    12. 'encryption' => 'plain', # 加密
    13. 'allow_username_or_email_login' => false, # 是否启用邮件作为用户名登陆
    14. 'block_auto_created_users' => false,
    15. 'base' => 'dc=aihelp,dc=net', # 核心配置,表示从哪一层读取用户信息
    16. 'user_filter' => '(memberof=cn=jettech_develop,ou=group,dc=jettech,dc=com)', # LDAP用户进行过滤
    17. 'lowercase_usernames' => false,
    18. 'group_base' => '',
    19. 'admin_group' => '',
    20. 'external_groups' => [],
    21. 'sync_ssh_keys' => false
    22. }

    其中:
    label 是显示在GitLab登录框的上方文字描述。
    host 和 port 是 LDAP 服务的主机地址及端口
    bind_dn 和 password 是一个管理 LDAP 的 dn 及密码
    base 表示 LDAP 将以该 dn 为 节点,向下查找用户
    user_filter 表示以某种过滤条件筛选用户,比如假设我们只希望所属组为 jettech_develop 的用户来访问 GitLab,则可以在这里设置 (memberOf=ou=jettech_develop,ou=group,dc=jettech,dc=com)

    2. 配置添加之后,依旧像安装时候那样,重载一下配置:

    gitlab-ctl reconfigure

    3.重载过程如果不报错,可以使用如下命令验证功能是否可用:

    1. $ gitlab-rake gitlab:ldap:check
    2. Checking LDAP ...
    3. LDAP: ... Server: ldapmain
    4. LDAP authentication... Success
    5. LDAP users with access to your GitLab server (only showing the first 100 results)
    6. DN: uid=test01,ou=Users,dc=jettech,dc=com cn: test01
    7. DN: uid=test02,ou=Users,dc=jettech,dc=com cn: test02
    8. DN: uid=test03,ou=Users,dc=jettech,dc=com cn: test03
    9. DN: uid=test04,ou=Users,dc=jettech,dc=com cn: test04
    10. Checking LDAP ... Finished

    使用ldap用户名密码进行登陆即可,此时登陆进去是没有任何项目的权限,如果需要某权限,可以对用户进行组或者单项目的授权。

    关于老用户的账号权限问题
    在实际情况下,我们一般是先gitlab已有账号,且运行了一段时日。后面的需求是接入LDAP,但是用户和账号是想保留,对于用户来说是无感知的接入

    解决办法:

    LDAP创建的账号,cn=用户名,description=姓名,mail=邮箱

    对映

    gitLab创建的账号,Username=用户名,Name=姓名, Email=邮箱

    两个账户体系的账号,只要做到LDAP的邮箱mail和gitLab的邮箱Email一致,前者就不会重新创建账号,后者的姓名不会被前者所覆盖。

    如果两边的账号邮箱不一致,会存在两个账号。

     

     

    gitlab:

     

  • 相关阅读:
    巨细胞病毒CMV感染检测,试剂盒怎么选?
    力扣每日一题-第59天-806. 写字符串需要的行数
    树莓派换源教程
    中国消毒柜行业市场深度调研及投资策略预测报告
    Executor框架
    中序表达式转为后序表达式
    人脸检测几种模型在RK3399上推理速度对比
    视频特效-使用ffmpeg滤镜
    Maven——maven核心概念
    jmeter 压测数据库
  • 原文地址:https://blog.csdn.net/Michaelwubo/article/details/126868151