【发布时间】:2017-05-09 16:08:21
【问题描述】:
我正在尝试在 linux 机器上设置 gitlab。我被困在 /etc/gitlab/gitlab.rb 文件中的 LDAP 配置上。 我想允许黑队和绿队的成员访问,拒绝其他人访问。
我的 conf 看起来像这样:
gitlab_rails['ldap_enabled'] = true
###! **remember to close this block with 'EOS' below**
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main:
label: 'LDAP'
host: 'hidden'
port: 'hidden'
uid: 'sAMAccountName'
method: 'plain'
bind_dn: 'hidden'
password: 'hidden'
active_directory: true
# allow_username_or_email_login: true
# block_auto_created_users: false
base: "cn=Black Team,OU=hidden2,OU=hidden3,OU=hidden4,OU=hidden5,OU=hidden6,DC=ad,DC=companyname,DC=com"
base: "cn=Green Team,OU=hidden2,OU=hidden3,OU=hidden4,OU=hidden5,OU=hidden6,DC=ad,DC=companyname,DC=com"
# user_filter: ''
# attributes:
# username:['uid', 'userid', 'sAMAccountName']
# email: ['mail', 'email', 'userPrincipalName']
# name: 'cn'
# first_name: 'givenName'
# last_name: 'sn'
# ## EE only
# admin_group: ''
# sync_ssh_keys: false
EOS
但它不起作用。很可能是因为此类配置授予组访问权限,但不授予组成员访问权限。有没有办法让子组/子项目/子元素也授予访问权限?
我知道我们可以这样做:
base: ''
user_filter: '(|(memberOf=cn=Black Team,OU=hidden2,OU=hidden3,OU=hidden4,OU=hidden5,OU=hidden6,DC=ad,DC=companyname,DC=com)(memberOf=cn=Green Team,OU=hidden2,OU=hidden3,OU=hidden4,OU=hidden5,OU=hidden6,DC=ad,DC=companyname,DC=com))'
这将是:“允许所有人,并且只将结果修剪给黑色和绿色团队的成员” 到目前为止它工作正常,但是添加几个团队后过滤器会变得很长,并且在更复杂的过滤器的情况下不容易更新。
因此,我对允许列出组的每个成员(在“基本”字段中)的解决方案感兴趣。 是否可以通过“base”字段定义多个组? 是否可以允许“基本”字段中列出的组成员访问?
【问题讨论】: