我正在尝试在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))'
将是:“允许所有人,并将结果仅限于黑人和绿队的成员” 到目前为止它工作正常,但是在添加了更多的团队之后,过滤器将变得很长,并且在更复杂的过滤器的情况下更新并不容易。
因此,我对允许列出的组的每个成员(在“基础”字段中)的解决方案感兴趣。 是否可以通过“基础”字段定义多个组? 是否可以允许访问“基础”字段中列出的组成员?
答案 0 :(得分:2)
我认为你不能这样做基础字段,并且应该只有1个基础,但是多行帮助使得很长的过滤器更容易编辑?
换行符被视为空格,因此如果您看到每行的组名称,则可能会有所帮助。
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))
(memberOf=cn=Another Team,OU=hidden2,OU=hidden3,OU=hidden4,OU=hidden5,OU=hidden6,DC=ad,DC=companyname,DC=com))'