gitlab集成AD域
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gitlab集成AD域相关的知识,希望对你有一定的参考价值。
参考技术A 搭建前提:已搭建gitlab-ce和内部AD域gitlab中默认是关闭LDAP服务的,在默认配置文件/etc/gitlab/gitlab.rb中修改LDAP配置项,添加以下配置:
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'AD 认证'
host: '192.168.1.5'
port: 389
uid: 'sAMAccountName'
encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
bind_dn: 'CN=binduser,CN=Users,DC=example,DC=com'
password: '******'
verify_certificates: true
active_directory: true
allow_username_or_email_login: true
block_auto_created_users: false
base: 'ou=开发部,DC=example,DC=com'
user_filter: ''
EOS </pre>
相关参数说明:
label:登录页显示标签。
host 、port :是 LDAP 服务的主机IP和端口,默认为389。
bind_dn :管理 LDAP 的 dn(区分名)。指定ldap服务器的管理员信息,即cn=账户,cn=组织单位。(CN为对象,ou为组织单元,DC为域部分)
password:bind_dn的密码。
base:以该目录为 节点,向下查找用户。ldap服务器的base域。
user_filter:表以某种过滤条件筛选用户。
[root@localhost ~]# gitlab-ctl reconfigure
[root@localhost ~]# gitlab-ctl restart
gitlab同步AD中的组
参考技术A网上的gitlab集成ad域控的教程基本上都是只集成了ad中的用户,而依然需要把用户拉到对应群组,查看了gitlab官网的说明是支持group sync的,即把ad的安全组同步到gitlab的群组,本文在同步用户的基础上进一步同步了组。
前提:已搭建 gitlab-ee (必须是Premium或Ultimate计划)和内部AD域
该实例中把用户创建在Coding组织目录下,用户组创建在Groups组织目录下。
将权限分成guest和developer两种,每个Gitlab中的xx群组所对应的AD用户组名称为xx_guest和xx_developer两个组。(实际使用中根据需求创建)
配置文件/etc/gitlab/gitlab.rb,在集成LDAP登录的基础上再加上group_base和gitlab_rails[\'ldap_group_sync_worker_cron\']两项。
[root@mq01 ~]# gitlab-ctl reconfigure
[root@mq01 ~]# gitlab-ctl restart
本例子将AD域中的java_guest和java_developer组同步到Java群组中。
新建一个用户Developer01,将其加入到Java_Developer组中。
该新建用户登录到gitlab中,查看“你的群组“中是否自动加入了指定的群组。
如需修改用户权限,如guest修改为developer,直接在AD域中将用户从xx_guest组中删除,加入到xx_developer中即可。
参考文章: https://docs.gitlab.com/ee/administration/auth/ldap/
https://about.gitlab.com/blog/2014/07/10/feature-highlight-ldap-sync/
以上是关于gitlab集成AD域的主要内容,如果未能解决你的问题,请参考以下文章