部署openldap服务并配置jumpsever、jira、mindoc、gitlab、jenkins集成ldap认证
  vYK3nmVMoUKm 2023年11月02日 78 0

背景

公司各种信息化系统越来越多,需要记住的用户账号也越来越多,人员入职离职就要分别在不同的各种系统上进行添加和删除比较繁锁,急需要一个可以统一认证的服务,于是就开始研究ldap,ldap中openldap是开源的方便使用,于是花了大概2个月时间才把标题上面的这几个服务全部调通,以下记录配置过程,用于保持记忆。

安装openldap

openldap软件有很多基于他的二次开发的软件,我这边就随便搜索了一个并使用容器部署,使用docker compose部署,yml文件如下:

version: '3'
networks:
  go-ldap-admin:
    driver: bridge
services:
  openldap:
    image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/openldap:1.4.0
    container_name: go-ldap-admin-openldap
    hostname: go-ldap-admin-openldap
    restart: always
    environment:
      TZ: Asia/Shanghai
      LDAP_ORGANISATION: "china-xxx.com"
      LDAP_DOMAIN: "china-xxx.com"
      LDAP_ADMIN_PASSWORD: "123456"
    command: [ '--copy-service' ]
    volumes:
      - ./data/openldap/database:/var/lib/ldap
      - ./data/openldap/config:/etc/ldap/slapd.d
      - ./config/init.ldif:/container/service/slapd/assets/config/bootstrap/ldif/custom/init.ldif
    ports:
      - 388:389
    networks:
      - go-ldap-admin
  phpldapadmin:
    image: registry.cn-hangzhou.aliyuncs.com/ali_eryajf/phpldapadmin:0.9.0
    container_name: go-ldap-admin-phpldapadmin
    hostname: go-ldap-admin-phpldapadmin
    restart: always
    environment:
      TZ: Asia/Shanghai # 设置容器时区与宿主机保持一致
      PHPLDAPADMIN_HTTPS: "false" # 是否使用https
      PHPLDAPADMIN_LDAP_HOSTS: go-ldap-admin-openldap # 指定LDAP容器名称
    ports:
      - 8091:80
    volumes:
      - ./data/phpadmin:/var/www/phpldapadmin
    depends_on:
      - openldap

其实这个yml文件完整的配置不止这些,他是个go-ldap-admin项目,里面包含了go语言版本的可视化控制台和php版本的(项目地址https://gitee.com/eryajf-world/go-ldap-admin,有兴趣的同学可以自己研究一下),go版本的功能主要是用于将ldap用户同步到mysql存储,由于修改项目默认的域名后没法正常使用,我就不使用他了,使用php版本的控制台。 yml配置文件配置好后启动openldap,启动后使用浏览器访问: image.png

创建组和用户

如上截图,我已经创建过名称为Group的ou,底下有个develop的组,再创建名称为people的ou,底下有admin,apaas,chench三个用户,这三个用户都是属于上面develop组的成员: image.png

配置jumpserver集成ldap认证

填写ldap服务器地址端口号,绑定DN(ldap管理员账号),用户ou(用户所在的组名称) 用户过滤器(搜索用户的关键字段),用户属性映射(jumpserver堡垒机的用户和ldap的用户映射关系) image.png 点测试连接 image.png 点测试登陆 image.png 使用ldap用户登陆 image.png 成功登陆,原来旧的用户的信息也成功继承 image.png

gitlab集成ldap认证

配置gitlab.rb,因为我是docker compose安装,所以在yml文件添加相关环境变量就行

        gitlab_rails['ldap_servers'] = {
          'main' => {
            'label' => 'LDAP',
            'host' =>  '10.10.10.41',
            'port' => 388,
            'uid' => 'cn',
            'bind_dn' => 'cn=admin,dc=china-xxx,DC=com',
            'password' => '123456',
            'encryption' => 'plain',
            'verify_certificates' => false,
            'timeout' => 10,
            'active_directory' => false,
            'user_filter' => '',
            'base' => 'ou=people,dc=china-xxx,dc=com',
            'lowercase_usernames' => 'false',
            'retry_empty_result_with_codes' => [80],
            'allow_username_or_email_login' => false,
            'block_auto_created_users' => false
          }
        }

然后重启容器,如果你是直接在容器里面修改gitlab.rb配置文件则重新加载配置 gitlab-ctl reconfigure 重新启动应用 gitlab-ctl restart 验证是否可以登陆 在经过一段时间的启动后,浏览器界面终于出现ldap登陆的选项 image.png 已成功登陆,并且之前旧账号的相关配置还在 image.png

配置jenkins集成ldap认证

系统管理--全局安全配置--安全域--ldap image.png image.png image.png 验证配置 使用ldap登陆jenkins image.png 登陆了,但是没有权限,因为之前没有创建过这个用户,用了Role- Based Strategy策略,ldap里面新建一个跟jenkins内置账号同名的用户admin,再次登陆就有权限了 image.png image.png

配置jira集成ldap认证

设置--用户管理--用户目录--添加目录-LDAP image.png image.png 高级设置 image.png 用户模式设置 image.png image.png 组模式设置 image.png 成员 模式设置 image.png 快速测试 image.png image.png 测试并保存 image.png 登陆用户登陆 image.png 说明: jira内置admin用户和ldap用户会存在冲突,如果ldap用户创建了admin用户,则admin为普通用户,不是管理员。

mindoc集成 ldap认证

修改app.conf文件添加ldap相关配置 image.png 验证用户登陆 image.png 原内置admin账号不可登陆,如果确实需要切换ldap需要解决这些问题 image.png

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  TAICzbZl2ew1   2023年11月02日   29   0   0 Dockergitlab
  6tuRdFP5lxfF   2023年11月13日   30   0   0 Dockergitlab
  6tuRdFP5lxfF   2023年11月13日   31   0   0 Dockergitlab
  TNZdNLJrAgNB   2023年11月02日   41   0   0 gitlab
  0C74k909wmgc   2023年11月02日   67   0   0 gitlab初始化