Gitlab企业版LDAP特性

gitlab-ce升级为gitlab-ee

若跨版本升级,则仍然需要升级到当前大版本的最新版本后才可升级到最新的ee版本。升级到企业版需要激活license,具体破解方法见https://www.mayershi.com/2019/12/23/crack-gitlab-ee-licence/

1
# rpm -Uvh gitlab-ee-12.6.2-ee.0.el7.x86_64.rpm

替换公钥以及激活license

将license_key.pub公钥内容替换到gitlab的/opt/gitlab/embedded/service/gitlab-rails/.license_encryption_key.pub中,然后通过gitlab-ctl restart重启。

导入license文件

在gitlab激活页面将GitLabBV.gitlab-license文件,导入即可激活了。

修改STARTER_PLAN为ULTIMATE_PLAN

1
2
3
4
# vi /opt/gitlab/embedded/service/gitlab-rails/ee/app/models/license.rb
def plan
restricted_attr(:plan).presence || ULTIMATE_PLAN
end

user sync

默认每天1:30同步一次。如果LDAP服务器是AD,需要确保设置了active_directory:true,且用户处于活动状态,否则gitlab会将用户设置为ldap_blocked状态,将无法登录
# gitlab_rails['ldap_sync_worker_cron'] = "30 1 * * *"

group sync

默认每个整小时同步一次。需要LDAP支持memberof属性,且确保设置了group_base参数,当用户首次登录时,gitlab将触发用户对应的组同步(需要预先配置组信息)。
# gitlab_rails['ldap_group_sync_worker_cron'] = "0 * * * *"

创建group

配置group sync

配置了group sync后,可以将一个或多个LDAP组link到GitLab组,以授予其成员对其内容的访问权限。
group中 Settings > LDAP Synchronization


multiple LDAP

多LDAP支持需要通过label进行区分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main:
label: 'LDAP-XM'
host: '192.168.1.20'
port: 389
uid: 'sAMAccountName'
bind_dn: 'CN=xxx,OU=Users,DC=gitlab,DC=com'
password: '******'
encryption: 'plain'
verify_certificates: false
active_directory: true
allow_username_or_email_login: false
block_auto_created_users: true
base: 'DC=gitlab,DC=com'
group_base: 'OU=Users,DC=gitlab,DC=com'
secondary:
label: 'LDAP-HZ'
host: '10.4.1.166'
port: 389
uid: 'sAMAccountName'
bind_dn: 'CN=test01,OU=Users,DC=gitlab,DC=cn'
password: '******'
encryption: 'plain'
verify_certificates: false
active_directory: true
allow_username_or_email_login: false
block_auto_created_users: true
base: 'DC=gitlab,DC=cn'
group_base: 'OU=Users,DC=gitlab,DC=cn'
EOS

坚持原创技术分享,您的支持将鼓励我继续创作!
0%