Gitlab整合群晖Synology Active Directory
群晖自己的文章并没有相关的帮助文档,网上也搜不到,这里留下来做个备份吧。
1、群晖先创建AD域
这里假定你设置的域名是wu.work,NetBIOS是wu,域管理员账号是ad-admin。大概类似截图中的样子
域管理员账号是你创建AD时输入的,不是NAS的管理员账号,别搞错了!
2、编辑gitlab.rb
如果你是用docker-compose安装的,应该会在docker-compose.yml里面指定了config目录的volume,在config目录里面就可以找到gitlab.rb。如果你是其他方式安装,文件在/etc/gitlab。如果还是找不着,自己Google。
打开gitlab.rb文件,找到ldap部分,然后把下面的内容贴进去(自己根据情况修改)
注意空格和缩进,注意空格和缩进,注意空格和缩进!!!
# LDAP
gitlab_rails['ldap_enabled'] = true
gitlab_rails['prevent_ldap_sign_in'] = false
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
# NAS的IP地址
host: '<IP>'
port: 389
uid: 'sAMAccountName'
# 域管理员账号。格式:域\账号
# 比如wu\ad-admin
bind_dn: '<域\AD管理员>'
password: '<域管理员密码>'
encryption: 'start_tls' # 注意,这里用start_tls来加密传输
verify_certificates: false # 证书都是NAS自己签发的,所以不验证SSL证书
smartcard_auth: false
active_directory: true # 这里设置为true,表示是AD,不是LDAP
allow_username_or_email_login: false
lowercase_usernames: false
block_auto_created_users: false
# 下面注意了,baseDN要参考初始化AD时所输入的域名。这里我的域名是wu.work
# 所以baseDN是CN=Users,DC=wu,DC=work
# 如果你创建时输入的是三级域名,比如ad.wu.work
# 那么baseDN就是CN=Users,DC=ad,DC=wu,DC=work
base: 'CN=Users,DC=wu,DC=work'
user_filter: ''
## EE only
group_base: ''
admin_group: ''
sync_ssh_keys: false
EOS
baseDN是个很容易出问题的地方,如果设置不对,就会导致不能登陆,或者抓不到用户信息。如果还是没搞懂,或者不太确定,那可以装一个Apache Directory Studio来确认下。如下图
直接在Users上,点击右键,选择Copy Entry/DN,拷贝出来的就是baseDN。
3、重启Gitlab
gitlab-ctl reconfigure
如果一切正常,Gitlab的登录界面就出现了LDAP选项