ldap - 基于ldap-groups访问gitlab

标签 ldap gitlab

我正在尝试在 Linux 机器上设置 gitlab。我被困在/etc/gitlab/gitlab.rb 文件中的 LDAP 配置上。 我想允许黑色和绿色团队的成员访问,拒绝其他人访问。

我的 session 是这样的:

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))'

这将是:“允许所有人,并将结果修剪为仅黑色和绿色团队的成员” 到目前为止它工作正常,但在添加更多团队后,过滤器将变得非常长,并且在过滤器更复杂的情况下更新将不容易。

因此,我对允许列出的组(在“基本”字段中)的每个成员的解决方案感兴趣。 是否可以通过“基本”字段定义多个组? 是否可以允许“基本”字段中列出的组的成员访问?

最佳答案

我认为您不能对基字段执行此操作并且应该只有 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))'

关于ldap - 基于ldap-groups访问gitlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43874832/

相关文章:

Gitlab - Revert in branch - 恢复 merge 时选择哪个分支

git - 如何在有和没有 ssh 身份验证的情况下将 Git 与两个不同的存储库一起使用?

docker - 在 Docker Hub 中使用 gitlab Repo

docker - Shell Runner 的所有权问题

ldap - LDAP搜索过滤器中的严格小于运算符?

delphi - 如何使用 Indy 在 DNS 中找到 LDAP 服务器?

coldfusion - 我可以使用 CFLDAP 以编程方式解锁 Active Directory 帐户吗?

Spring安全+身份验证LDAP : BindRequest and UnbindRequest?

java - LDAP 上的登录用户获取所有详细信息

git - 无法纠正突发 "server certificate verification failed"