热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

GitLabLDAP的二级策略

如何解决《GitLabLDAP的二级策略》经验,为你挑选了1个好方法。

我在干净的Debian(debian-7.8.0-amd64)安装上使用GitLab CE Omnibus软件包(gitlab_7.7.2-omnibus.5.4.2.ci-1_amd64).

我按照https://about.gitlab.com/downloads/上的安装过程进行操作,一切正常.

我修改了/etc/gitlab/gitlab.rb以使用单个LDAP服务器进行身份验证.哪个也按预期工作.

但是当我尝试使用辅助LDAP连接时,"gitlab-ctl reconfigure"给出了输出:

---- Begin output of /opt/gitlab/bin/gitlab-rake cache:clear ----
STDOUT:
STDERR: rake aborted!
Devise::OmniAuth::StrategyNotFound: Could not find a strategy with name `Ldapsecondary'. Please ensure it is required or explicitly set it using the :strategy_class option                          .
Tasks: TOP => cache:clear => environment
(See full trace by running task with --trace)
---- End output of /opt/gitlab/bin/gitlab-rake cache:clear ----

所以,问题是我可以使用LDAP连接'main',但我不能使用'secondary'连接.

是否有可能同时在CE版本中使用两个不同的LDAP连接?

我是ruby [在轨道上]的新手.我在/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/ldap/config.rb中找到了一些东西,但是我无法调试任何东西.

这是我在/etc/gitlab/gitlab.rb中的设置

gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-EOS # remember to close this block with 'EOS' below
  main: # 'main' is the GitLab 'provider ID' of this LDAP server
    label: 'First Company'
    host: '192.168.100.1'
    port: 389
    uid: 'sAMAccountName'
    method: 'tls' # "tls" or "ssl" or "plain"
    bind_dn: 'debian@firstcompany.local'
    password: 'Passw0rd'
    active_directory: true
    allow_username_or_email_login: false
    base: 'dc=firstcompany,dc=local'
    user_filter: '(&(objectClass=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))'
    ## EE only
    group_base: ''
    admin_group: ''
    sync_ssh_keys: false

  secondary: # 'secondary' is the GitLab 'provider ID' of second LDAP server
    label: 'Second Company'
    host: '192.168.200.1'
    port: 389
    uid: 'sAMAccountName'
    method: 'tls' # "tls" or "ssl" or "plain"
    bind_dn: 'debian@secondcompany.local'
    password: 'Passw0rd'
    active_directory: true
    allow_username_or_email_login: false
    base: 'dc=secondcompany,dc=local'
    user_filter: '(&(objectClass=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))'
    ## EE only
    group_base: ''
    admin_group: ''
    sync_ssh_keys: false
EOS

非常感谢你!



1> 小智..:

多个LDAP服务器是EE的一项功能,因此在CE中设置配置不会执行任何操作。您可以在GitLab文档中看到该功能。


推荐阅读
author-avatar
嘻嘻嘻嘻
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有