首页 > 其他分享 >【笔记】gitlab+openldap使用memberof筛选登录用户

【笔记】gitlab+openldap使用memberof筛选登录用户

时间:2023-01-25 21:33:59浏览次数:57  
标签:cn memberof gitlab module openldap ldap

这几天在搞kerberos+nfs4 没搞成 之前搞了个openldap实现了分散控制集中管理(不是DCS...)

gitlab和nexus也支持ldap 虽然都不咋好用 但是在搞gitlab的时候发现memberOf这个玩意就是用不了

查了半天资料才知道这玩意默认是没加载的 特此记录笔记

参考:https://blog.csdn.net/u011607971/article/details/119037796

他是centos的系统(大概) 我是ubuntu 所以有些配置文件要改

先说系统环境 docker安装的osixia/openldap:1.4.0 里面openldap的版本是 slapd 2.4.50+dfsg-1~bpo10+1 

容器内系统是Linux openldap 5.4.0-137-generic #154-Ubuntu

ldap目录是这样的 无视那个kerberos及其相关元素 那玩意折腾的我想放弃了 学shiro都没他费劲

找个地方写个文件add_memberof_module.ldif 然后 ldapadd -Q -Y EXTERNAL -H ldapi:/// -f add_memberof_module.ldif 写进数据库 内容如下

dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
olcModulePath: /usr/lib/ldap <------这里是你的ldap的lib库的位置

dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: memberof.la

然后是add_groupofnames_module.ldif 同样 ldapadd -Q -Y EXTERNAL -H ldapi:/// -f add_groupofnames_module.ldif 写进数据库

dn: olcOverlay=memberof,olcDatabase={1}mdb,cn=config <------我这里是{1}mdb 他是{2}hdb 应该是ldap版本差异 我是2.4.50 安装的时候都没见到让选hdb还是mdb
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member     
olcMemberOfMemberOfAD: memberOf

弄完了之后去添加组 类型为groupOfNames 注意不要选posixGroup 然后给这个组里添加用户 弄完了就像这样

然后去gitlab.rb改配置

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: '10.0.0.1'
    port: 389
    uid: 'uid'
    bind_dn: 'cn=admin,dc=erika,dc=cn'
    password: '密码'
    encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
    #verify_certificates: true
    #smartcard_auth: false
    active_directory: true
    allow_username_or_email_login: true
    lowercase_usernames: false
    block_auto_created_users: false
    base: 'ou=People,dc=erika,dc=cn'
    group_base: 'ou=Group,dc=erika,dc=cn'
    user_filter: '(memberOf=cn=gitlab,ou=Group,dc=erika,dc=cn)'
    attributes: 
      username: ['uid','cn','sAMAccountName']
      email: ['mail','email','userPrincipalName']
      name: 'cn'
      first_name: 'givenName'
      last_name: 'sn'
    ## EE only
    #group_base: ''
    #admin_group: ''
    #sync_ssh_keys: false
EOS

至于user_filter外面的括号括不括 我也不知道 反正这样能用 不过好像是多个条件才必须要加括号

然后gitlab-ctl reconfigure 等他重新加载完配置 就能用了 另外建议笔记本用户不要用ldap这种认证方式登录系统 在没连到ldap服务器的时候或者dns出错的时候登录会等好长时间 我感觉这玩意搞服务认证就够了

标签:cn,memberof,gitlab,module,openldap,ldap
From: https://www.cnblogs.com/panther1942/p/17067317.html

相关文章

  • 基于KubeSphere在K8S发布微服务ruoyi----5.部署基础环境Gitlab
      Docker搭建Gitlab服务器1、Gitlab镜像dockersearchgitlab    dockersearchgitlab-ce  dockerpullgitlab/gitlab-ce      2、创......
  • gitlab Merge Requests操作流程
    引用https://juejin.cn/post/6993548883729055780一、配置受保护的分支创建一个分支例如prd将prd分支也设置为protect分支配置保护分支二、提交者MergeRequests......
  • Gitlab集成jenkins及docker自动化部署教程
    Gitlab集成jenkins及docker自动化部署教程能实现提交代码到gitlab后,我们只需要合并代码到指定分支就可以上Jenkins自动拉取最新代码并重新构建部署1、登录Jenkins点击如......
  • dockercompose搭建GITLAB上传代码
    1.创建挂载目录:mkdir-p/home/yuexin/gitlab/etc/home/yuexin/gitlab/log/home/yuexin/gitlab/data2.编写dockercomposeversion:'3.7'services:gitlab:im......
  • 一次对GitLab的备份
    备份命令:gitlab-rakegitlab:back-up:create前提条件:有root用户操作权限,这里我没有root密码,所以使用了damin,并用sudo-i完成所有root操作 备份前进行了一次备份文......
  • gitlab tortoisegit puttyGen
    使用puttyGen生成公私秘钥注意:生成后的publickey有时会在gitlab识别不出,要多重新生成才行将puttyGen框中的内容复制进gitlab就行生成时无需设置密码选择rsa就行 to......
  • 忘记gitlab的root的密码如何修复(Linux环境)
    一进入到gitlab服务器,输入gitlab-railsconsoleproduction命令进入到gitlab控制台gitlab-railsconsoleproduction二输入如下指令获取root用户变量user=User.......
  • 一个写得很好的gitlab.yml模板(有Windows和Ubuntu)
    出自这个GitHub:https://github.com/nanoporetech/scrappie/blob/master/.gitlab-ci.yml#YamlCIconfigforGitlabSee.http://docs.gitlab.com/ce/ci/yaml/README.ht......
  • 群晖中使用Docker安装Gitlab
    使用群晖NAS220+有段时间了,最近想着省电&统一入口,把家里服务器上的gitlab移植到群晖中。折腾了一个早上,搞定了。简单记录下步骤:安装1.安装docker在套件中心搜索到do......
  • DevOps实战系列【第五章】:基于Gitlab/Maven/Jenkins/Docker实战案例详解
    个人亲自录制全套DevOps系列实战教程:​​手把手教你玩转DevOps全栈技术​​从创建Jenkins的job开始1.gitlab设置:我们从新建一个jenkins任务开始,建一个自由风格项目,我们暂时......