首页 > 其他分享 >部署openldap服务并配置jumpsever、jira、mindoc、gitlab、jenkins集成ldap认证

部署openldap服务并配置jumpsever、jira、mindoc、gitlab、jenkins集成ldap认证

时间:2023-09-14 16:06:02浏览次数:49  
标签:jira mindoc admin gitlab 用户 openldap 登陆 ldap go

背景

公司各种信息化系统越来越多,需要记住的用户账号也越来越多,人员入职离职就要分别在不同的各种系统上进行添加和删除比较繁锁,急需要一个可以统一认证的服务,于是就开始研究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

标签:jira,mindoc,admin,gitlab,用户,openldap,登陆,ldap,go
From: https://blog.51cto.com/riverxyz/7470804

相关文章

  • 分享!JetBrains IDE中的GitLab支持
    GitLab是流行的基于git的软件开发和部署平台之一,虽然很长一段时间以来,所有基本git操作都已经可以通过GitLab实现,但GitLab集成仍是JetBrains社区的一大最热门请求。为此,JetBrains团队今年与GitLab联手提供了这种类型的集成。JetBrains官方认为此类集成包括的各种功能可能会影响开发......
  • 如何将GitLab仓库同步到GitHub和Gitee?
    作者:西瓜程序猿主页传送门:https://blog.51cto.com/kimiliucn前言在之前写的【Kimi.RocketMQ.NET】开源项目中,代码我是放在自己搭建的GitLab服务器上,然后我每次提交的代码希望实时同步到GitHub和Gitee上,那所以这篇文章来记录一下GitLab如何同步到GitHub,GitLab如何同步到Gitee。当然......
  • gitlab搭建
    社区版安装建议4G内存安装并配置必须的依赖sudoyuminstall-ycurlpolicycoreutils-pythonopenssh-serversudosystemctlenablesshdsudosystemctlstartsshdsudofirewall-cmd--permanent--add-service=httpsudosystemctlreloadfirewalld安装Postfix......
  • Vue + GitLab 实现自动化部署
      二、Linux安装nginx在Linux上安装NGINX的步骤如下:打开终端(命令行界面)。使用以下命令安装NGINX:对于Ubuntu/Debian系统:sudoapt-getinstallnginx对于CentOS/RHEL系统:sudoyuminstallnginx等待安装完成。使用以下命令启动NGI......
  • gitlab-- pages 功能实战
    pages介绍在我们日常使用gitlab的过程中,会产生一些产物,自己做的一些小网站,小页面之类,一般都是在本地调试访问,一旦我们想让其他朋友也可以随时访问,就需要单独在公有云上买一个服务器去部署,一是需要付费,二是我们调试页面访问量不多,单独搞个服务器部署有点浪费。使用GitLabPag......
  • MinDoc:针对IT团队的文档、笔记系统
    作为一名IT从业者,无论是在公司团队中,还是在平时自己写一些笔记、博客等文档,我都习惯使用markdown来进行书写。在使用过许多支持markdown语法的系统或软件(如Typora、未知、我来、思源、觅道等)后,我总觉得它们不能满足我的需求。直到我发现了MinDoc这款针对IT团队开发的简单好用的开源......
  • Linux搭建GitLab私有仓库
    前言GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。Gitlab是被广泛使用的基于git的开源代码管理平台,基于RubyonRails构建,主要针对软件开发过程中产生的代码和文档进行管理,Gitlab主要针对group和project两个维度进行代......
  • 虚拟机部署gitlab 接口502 含泪做笔记 ==> /var/log/gitlab/nginx/gitlab_error.log <
    行不通勿喷,谢谢!!**虚拟机部署gitlab接口502**gitlab-ctltail查看具体报错信息:==>/var/log/gitlab/nginx/gitlab_error.log<==2023/09/0416:45:44[crit]42817#0:*2connect()tounix://var/opt/gitlab/gitlab-rails/sockets/gitlab.socketfailed(13:Permissionde......
  • 应用对接gitlab api
    公司有个项目需要对接gitlab相关api。1gitlab登陆gitlab提供给我们oauth2登陆接口。我们可以通过这个接口实现gitlab认证登陆,并返回给我们一个token作为系统登录凭证。官网:https://docs.gitlab.com/ee/integration/oauth_provider.html首先,gitlab上申请一个ApplicationID,后......
  • gitlab删除project
      ......