当前位置: 首页 > 工具软件 > GitHub-Ldap > 使用案例 >

Gitlab启用 LDAP 并分组管理

罗奇文
2023-12-01

Gitlab + LDAP 区分组认证

GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务

可通过 Web 界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

可以简单的理解,gitlab 就是支持搭建在本地(公司)服务器上的一个 github。 支持相关的个性化设置和配置,同时gitlab 支持相关的 CI (持续化集成), 为相关的项目自动化集成构建、测试、部署、交付提供了可能。

针对 Gitlab 与 LDAP 结合并指定组进行登陆,做出如下配置。

需要关联 LDAP 添加 memberOf 模块文档添加 memberOf

Gitlab LDAP配置

您的 LDAP 支持 memberof 属性,则当用户第一次登录 GitLab 时,会触发用户应该是其成员的组的同步。

gitlab_rails['prevent_ldap_sign_in'] = false
gitlab_rails['time_zone'] ='Asia/Shanghai'
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
  main:
    label: 'MagicAD'  # 页面上显示的标签
    host: 'ldap-server.magic.com'  # LDAP 服务的地址
    port: 389  # LDAP 端口
    uid: 'uid'  # 在 LDAP 用户的标识
    bind_dn: 'cn=manager,dc=magic,dc=com'  # LDAP 管理用户
    password: 'root123' # LDAP 管理密码
    encryption: 'plain'  # 加密方法,不加密
    verify_certificates: true  # 是否启用 SSL 证书验证 只有在encryption 配置为start_tls 或者simple_tls
    timeout: 30  # 访问 LDAP 超时时间 默认 10 秒
    active_directory: true  # LDAP 服务器是否为 Active Directory LDAP 服务器
    allow_username_or_email_login: false  # 如果启用,GitLab 将忽略用户在登录时提交的 LDAP 用户名中第一个 @ 之后的所有内容。如果您在 ActiveDirectory 上使用 uid: 'userPrincipalName' 您需要禁用此设置,因为 userPrincipalName 包含一个 @
    lowercase_usernames: false  # 如果启用,GitLab 会将名称转换为小写
    block_auto_created_users: false  # 是否组织新用户访问 
    base: 'ou=Users,dc=magic,dc=com'  # LDAP 搜索用户的位置
    user_filter: '(memberOf=cn=gitlab-users,ou=Groups,dc=magic,dc=com)'  # 根据条件进行组过滤
    attributes:  # LDAP 中用户的属性
      username: ['uid', 'userid', 'sAMAccountName']
      email: ['mail', 'email', 'userPrincipalName']
      name: 'cn'
      first_name: 'givenName'
      last_name:  'sn'
EOS
 类似资料: