GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务
可通过 Web 界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。
可以简单的理解,gitlab 就是支持搭建在本地(公司)服务器上的一个 github。 支持相关的个性化设置和配置,同时gitlab 支持相关的 CI (持续化集成), 为相关的项目自动化集成构建、测试、部署、交付提供了可能。
针对 Gitlab 与 LDAP 结合并指定组进行登陆,做出如下配置。
需要关联 LDAP 添加 memberOf 模块文档添加 memberOf
您的 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