基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)

这篇具有很好参考价值的文章主要介绍了基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA等)


这里可以了解什么是LDAP,为什么要用它>>>

基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)

一、通过docker-compose部署open-ldap

下面通过docker-compose一键部署openLDAP、phpldapadmin和self-service-password。(通过K8s部署的方式大同小异)

准备open-ldap的docker-compose文件

version: '2'
services:
  openldap:
    image: osixia/openldap:1.5.0  ### 如果有私有仓库可以从自己的私有仓库拉取镜像
    container_name: openldap
    restart: always
    environment:
      LDAP_LOG_LEVEL: "256"
      LDAP_ORGANISATION: "xxx"   ### 您的组织名称
      LDAP_DOMAIN: "zaq.test"    ### 公司域名
      LDAP_BASE_DN: "dc=zaq,dc=test"   ### 根据域名组成
      LDAP_ADMIN_PASSWORD: "XXX"   ### 密码自己来设置
      LDAP_CONFIG_PASSWORD: "XXX"
      LDAP_READONLY_USER: "false"
      #LDAP_READONLY_USER_USERNAME: "readonly"
      #LDAP_READONLY_USER_PASSWORD: "readonly"
      LDAP_RFC2307BIS_SCHEMA: "false"
      LDAP_BACKEND: "mdb"
      #LDAP_TLS: "true"
      #LDAP_TLS_CRT_FILENAME: "zaq.test.pem"
      #LDAP_TLS_KEY_FILENAME: "zaq.test.key"
      #LDAP_TLS_DH_PARAM_FILENAME: "dhparam.pem"
      #LDAP_TLS_CA_CRT_FILENAME: "ca.crt"
      #LDAP_TLS_ENFORCE: "false"
      #LDAP_TLS_CIPHER_SUITE: "SECURE256:-VERS-SSL3.0"
      # LDAP_TLS_VERIFY_CLIENT: "demand"
      LDAP_REPLICATION: "false"
      #LDAP_REPLICATION_CONFIG_SYNCPROV: 'binddn="cn=admin,cn=config" bindmethod=simple credentials="$$LDAP_CONFIG_PASSWORD" searchbase="cn=config" type=refreshAndPersist retry="60 +" timeout=1 starttls=critical'
      #LDAP_REPLICATION_DB_SYNCPROV: 'binddn="cn=admin,$$LDAP_BASE_DN" bindmethod=simple credentials="$$LDAP_ADMIN_PASSWORD" searchbase="$$LDAP_BASE_DN" type=refreshAndPersist interval=00:00:00:10 retry="60 +" timeout=1 starttls=critical'
      #LDAP_REPLICATION_HOSTS: "#PYTHON2BASH:['ldap://ldap.example.org','ldap://ldap2.example.org']"
      KEEP_EXISTING_CONFIG: "false"
      LDAP_REMOVE_CONFIG_AFTER_SETUP: "true"
      #LDAP_SSL_HELPER_PREFIX: "ldap"
    tty: true
    stdin_open: true
    volumes:
      - /opt/openldap/ldap:/var/lib/ldap
      - /opt/openldap/slapd.d:/etc/ldap/slapd.d
      - /opt/openldap/certs:/container/service/lapd/assets/certs
    ports:
      - "389:389"
      - "636:636"
    # For replication to work correctly, domainname and hostname must be
    # set correctly so that "hostname"."domainname" equates to the
    # fully-qualified domain name for the host.
    domainname: "zaq.test"
    hostname: "ldap-server"
  phpldapadmin:
    image: osixia/phpldapadmin:latest
    container_name: phpldapadmin
    restart: always
    environment:
      PHPLDAPADMIN_LDAP_HOSTS: "openldap"   ### 如果部署后登录不进去有可能是这里出了问题,直接换为部署openldap服务的公网IP试试
      PHPLDAPADMIN_HTTPS: "false"
    ports:
      - "50081:80"
    depends_on:
      - openldap
  self-service-password:
    container_name: self-service-password
    image: tiredofit/self-service-password:latest
    restart: always
    ports:
      - "50080:80"
    environment:
      - LDAP_SERVER=ldap://openldap:389
      - LDAP_BINDDN=cn=admin,dc=zaq,dc=test
      - LDAP_BINDPASS=XXXX
      - LDAP_BASE_SEARCH=dc=zaq,dc=test
      - MAIL_FROM=it@open.com
      - MAIL_FROM_NAME=账号自助服务平台
      - SMTP_DEBUG=0
      - SMTP_HOST=smtp.qiye.aliyun.com
      - SMTP_USER=it@open.com
      - SMTP_PASS=jYda52VZ8Ftw1111
      - SMTP_PORT=465
      - SMTP_SECURE_TYPE=ssl
      - SMTP_AUTH_ON=true
      - NOTIFY_ON_CHANGE=true
    volumes:
      - /etc/localtime:/etc/localtime
      - /opt/openldap/self-service-password/htdocs:/www/ssp
      - /opt/openldap/self-service-password/logs:/www/logs
    deploy:
      resources:
        limits:
           memory: 2G
        reservations:
           memory: 512M

执行docker-compose up命令,就可以一键部署openldap、phpldapadmin(他就是openldap的操作页面)、self-service-password(用户用来修改密码的操作页面)。

接下来可以通过访问IP:50081访问phpldapadmin了。账号就是cn=admin,dc=zaq,dc=test,密码就是通过LDAP_ADMIN_PASSWORD设置的。

二、操作指南

这里先在dc下面创建一个ou=group和一个ou=user。暂时先不按部分区分,如果想再按部分区分则就先创建一个ou,再在该ou下创建一个ou=group即可。

创建ou

基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)
基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)

创建Group

在ou=group下创建dev
基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)

创建User Account

在ou=people下创建用户
基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)
填写用户信息
基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)

为用户填写其他属性

为用户添加真实姓名和邮箱(有些系统需要用户的这两个信息!比如gitlab)
基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)
效果如下:
基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)


LDAP统一账号管理——与第三方集成

一、LDAP和JRIA的集成

  1. 登录进JRIA的控制台(需要是管理员身份)
  2. 点击:配置—>用户管理—>用户目录—>添加目录—>LDAP

基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)
基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)

特别解释几个属性的含义:

  • LDAP模式
    • “基础DN” 填写LDAP的根节点,类似dc=zaq,dc=test;
    • “附加用户DN” 填写限制用户搜索范围的值,类似ou=people,不填的话从基础DN开始搜索;
    • “附加组DN” 填写限制用户组搜索范围的值,和上一项类似;
  • LDAP权限
    • 只读:JIRA只能从LDAP中读取用户以及用户组信息,所有对用户及用户组的修改不能通过JIRA进行。
    • 本地只读:相比只读来说,可以在JIRA中添加组,并且会将LDAP同步过来的用户加入到该组中。
    • 读写:不但可以读取LDAP上的用户及组信息,还可以通过JIRA修改这些信息,这些信息会自动同步到LDAP。

基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)

二、LDAP和Confluence的集成

右上角设置 → 用户管理 → 用户目录 → 添加目录 → LDAP

接下来的流程和JIRA一模一样。(这里也可以直接让JIRA和Confluence联动,就只需要配置好JIRA的LDAP就行了)

三、LDAP和GitLab的集成

找到gitlab的配置文件:/etc/gitlab/gitlab.rb,然后修改下面的内容

### LDAP Settings
###! Docs: https://docs.gitlab.com/omnibus/settings/ldap.html
###! **Be careful not to break the indentation in the ldap_servers block. It is
###!   in yaml format and the spaces must be retained. Using tabs will not work.**

 gitlab_rails['ldap_enabled'] = true
# gitlab_rails['prevent_ldap_sign_in'] = false

###! **remember to close this block with 'EOS' below**
 gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
   main: # 'main' is the GitLab 'provider ID' of this LDAP server
     label: 'LDAP'
     host: 'xx.xx.xx.xx'  ### LDAP服务地址
     port: 389
     uid: 'uid'   ### 指定登录gitlab使用LDAP的哪个字段作为账号
     bind_dn: 'cn=admin,dc=zaq,dc=test'  ### 这里用自己的管理员账号(需要一个有read权限的账号验证通过后搜索用户输入的用户名是否存在)
     password: 'XXX'
     encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
#     verify_certificates: true
#     smartcard_auth: false
     active_directory: false       ### 如果是 Active Directory LDAP server 则设为true
     allow_username_or_email_login: true  ### 是否允许email登录
#     lowercase_usernames: false    ### 是否将用户名转为小写
     block_auto_created_users: false   ### 是否自动创建用户。如果设置为true则自动注册的账户是被锁定的,需要管理员账户手动的为这些账户解锁,因此此处将其设置为false。当设置为false的时候,就需要保证,对于第三方登录的用户完全可控。
     base: 'ou=people,dc=zaq,dc=com'   ### 从哪个位置搜索用户,这里填自己的
     user_filter: ''     ### 表示以某种过滤条件筛选用户,比如我们只希望组为gitlab的用户来访问GitLab,则这里可以设置为:memberOf=ou=gitlab,ou=people,dc=zaq,dc=com
#	 attributes:	# LDAP 中用户的属性
#	   username: ['uid', 'userid', 'sAMAccountName']
#      email: ['mail', 'email', 'userPrincipalName']
#      name: 'cn'
#      first_name: 'givenName'
#      last_name:  'sn'
     ## EE only
     group_base: ''
     admin_group: ''
     sync_ssh_keys: false
 EOS

修改完后重启GitLab!最后最好再取消GitLab的注册功能,新用户只能通过 LDAP 认证的方式进行登陆。

拉取代码时要用LDAP创建的账号密码拉取。

四、LDAP和Nexus的集成

  1. 登录管理员账号
  2. 基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)
  3. 基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)
  4. 基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)
  5. 配置完后别忘了Users中选中LDAP用户,为LDAP用户分配角色
    基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)

五、LDAP和Harbor的集成

特别注意:在没有添加任何用户之前,你可以修改认证模式(Database模式或者LDAP模式), 但当Harbor系统中已经有至少一个用户之后(除了admin用户外),将不能够修改认证模式。

新版本的可以直接在页面进行修改,如下:

登录管理员账户,选中配置管理
基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)
如果是老版本,则需要修改harbor.cfg文件,如下:文章来源地址https://www.toymoban.com/news/detail-403861.html

##By default the auth mode is db_auth, i.e. the credentials are stored in a local database.
#Set it to ldap_auth if you want to verify a user's credentials against an LDAP server.
auth_mode = ldap_auth
 
#The url for an ldap endpoint.
ldap_url = xx.xx.xx.xx
 
#A user's DN who has the permission to search the LDAP/AD server.
#If your LDAP/AD server does not support anonymous search, you should configure this DN and ldap_search_pwd.
ldap_searchdn = cn=admin,dc=zaq,dc=test
 
#the password of the ldap_searchdn
ldap_search_pwd = xxx
 
#The base DN from which to look up a user in LDAP/AD
ldap_basedn = dc=zaq,dc=com
 
#Search filter for LDAP/AD, make sure the syntax of the filter is correct.
#ldap_filter = (objectClass=person)
 
# The attribute used in a search to match a user, it could be uid, cn, email, sAMAccountName or other attributes depending on your LDAP/AD
ldap_uid = uid
 
#the scope to search for users, 0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE
ldap_scope = 2
 
#Timeout (in seconds)  when connecting to an LDAP Server. The default value (and most reasonable) is 5 seconds.
ldap_timeout = 5
 
#Verify certificate from LDAP server
ldap_verify_cert = true
 
#The base dn from which to lookup a group in LDAP/AD
ldap_group_basedn = ou=IT,dc=shileizcc,dc=com
 
#filter to search LDAP/AD group
ldap_group_filter = objectclass=group
 
#The attribute used to name a LDAP/AD group, it could be cn, name
ldap_group_gid = cn
 
#The scope to search for ldap groups. 0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE
ldap_group_scope = 2

到了这里,关于基于Docker部署OpenLDAP,同时集成第三方系统(GitLab、JIRA、Nexus、Harbor)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot集成常用第三方框架-ES

    作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库

    2024年02月03日
    浏览(38)
  • openldap docker k8s部署

    1、docker部署 首先编写docker-compose.yml文件: version: \\\'2\\\' services:   openldap:     image: osixia/openldap:1.5.0     container_name: openldap     restart: always     environment:       LDAP_ORGANISATION: \\\"gavin\\\"       LDAP_DOMAIN: \\\"auth.gavin.cn\\\"       LDAP_BASE_DN: \\\"dc=auth,dc=gavin,dc=cn\\\"       LDAP_ADMIN_PASSWORD: \\\"123456\\\"

    2024年02月07日
    浏览(29)
  • RK3568平台 TinyAlsa集成第三方音频算法

    ALSA(Advanced Linux Sound Architecture)是一个开源项目,涵盖了用户空间和内核空间对音频设备的操作接口,通过应用层使用alsalib可以实现对音频设备的控制         TinyAlsa是android推出的一个精简的ALSA库,当然alsa-driver这块没有改动         alsa包含:1、内核 alsa-driver 2.用户空间

    2024年01月23日
    浏览(31)
  • Xcode通过Add package自动集成第三方SDK问题汇总

    问题1:  解决方法:这个问题可能是因为 Adjust 或者 Facebook 的库当中依赖的某些类库的仓库地址是 git:// 协议,通过这种协议与 GitHub 通讯时会使用到你的 SSH 配置,你电脑上相关的 ssh key 使用了 GitHub 不再支持的格式,请参考提示中的网址重新生成相关的 SSH key:https://githu

    2024年02月13日
    浏览(27)
  • OpenLdap +PhpLdapAdmin + Grafana docker-compose部署安装

    目录 一、OpenLdap介绍 二、PhpLdapAdmin介绍 三、使用docker-compose进行安装 1. docker-compose.yml 2. grafana配置文件 3. provisioning 四、安装openldap、phpldapadmin、grafana 五、配置OpenLDAP 1. 登陆PhpLdapAdmin web管理 2. 需要注意的细节 内容介绍参考:   OpenLDAP是轻型目录访问协议(Lightweight Director

    2024年02月09日
    浏览(40)
  • Flink保姆级教程,超详细,教学集成多个第三方工具(从入门到精通)

    目录 一.Flink简介 Flink发展历程 Flink特性 二、Flink 部署及启动 1. 本地执行 (Local Execution) 2. Standalone 集群部署 2.1 会话模式(Session Mode) 2.2 单作业模式(Per-Job Mode)和应用模式(Application Mode) 3. 资源管理器集成部署 三.Flink架构和执行原理 Flink架构 任务槽和资源 Flink资源管

    2024年04月29日
    浏览(30)
  • Docker学习路线6:使用第三方镜像

    第三方镜像是在Docker Hub或其他容器注册表上提供的预构建Docker容器镜像。这些镜像由个人或组织创建和维护,可以作为您容器化应用程序的起点。 Docker Hub 是最大和最受欢迎的容器镜像注册表,包含官方和社区维护的镜像。您可以根据名称或要使用的技术搜索镜像。 例如:

    2024年02月16日
    浏览(34)
  • ios swift5 “Sign in with Apple“(使用苹果登录)怎样接入(第三方登录)集成AppleID登录

    1.1 如果你新建app id,记得在新建的时候就选中Sign in with Apple功能 1.2 如果app已经上线了,后面再需要加苹果登录的功能,也可以在app id的配置中加这个功能,只是勾选Sign in with Apple点击Save后,profilex需要重新生成 iOS 苹果登录(第三方登录) - csdn 集成AppleID登录 - 简书 要在你的

    2024年04月09日
    浏览(39)
  • Forest-声明式HTTP客户端框架-集成到SpringBoot实现调用第三方restful api并实现接口数据转换

    声明式HTTP客户端API框架,让Java发送HTTP/HTTPS请求不再难。它比OkHttp和HttpClient更高层, 是封装调用第三方restful api client接口的好帮手,是retrofit和feign之外另一个选择。 通过在接口上声明注解的方式配置HTTP请求接口。 官网: Forest   代码地址: forest: 声明式HTTP客户端API框架,让

    2024年02月04日
    浏览(100)
  • Spring Boot 最新版3.x 集成 OAuth 2.0实现认证授权服务、第三方应用客户端以及资源服务

    Spring Boot 3 已经发布一段时间,网上关于 Spring Boot 3 的资料不是很多,本着对新技术的热情,学习和研究了大量 Spring Boot 3 新功能和新特性,感兴趣的同学可以参考 Spring 官方资料全面详细的新功能/新改进介绍 Spring 版本升级到6.x JDK版本至少17+ … 新特性有很多,本文主要针对

    2024年02月02日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包