无需服务器端访问的 Gitlab LDAP(Active Directory)身份验证
Gitlab LDAP (Active Directory) Authentication without Server Side Access
我在 RHEL 6.6 上使用 GitLab Omnibus 7.10.0。我使用以下配置启用了 LDAP:
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: 'FOO COM Active Directory (LDAP)'
host: 'ad.server.foo.com'
port: 3268
uid: 'someuser'
method: 'plain' # "tls" or "ssl" or "plain"
bind_dn: 'CN=My Whole. Name,OU=Some Users,DC=ad,DC=server,DC=foo,DC=com'
password: 'thepassword'
active_directory: true
allow_username_or_email_login: false
block_auto_created_users: false
base: 'DC=ad,DC=server,DC=foo,DC=com'
user_filter: ''
# ## EE only
# group_base: ''
# admin_group: ''
# sync_ssh_keys: false
#
# secondary: # NOT FILLED OUT
EOS
我的问题是我无法让用户通过 LDAP 进行身份验证。我不确定配置是否错误,或者我需要在服务器端做一些事情(我无法直接访问)。当我运行
gitlab-rake gitlab:ldap:check RAILS_ENV=production
我明白了
Checking LDAP ...
LDAP users with access to your GitLab server (only showing the first 100 results)
Server: ldapmain
Checking LDAP ... Finished
我可以使用此帐户(我的个人帐户)或其他应用程序的其他帐户使用 java 搜索个人用户,但无法让 AD 与 gitlab 一起使用。我通过 运行 在 Windows 框上执行此命令得到了 bind_dn "My Whole. Name"。
gpresult -r
我也试过 bind_dn 的:
uid=myADaccountname,OU=Some Users,DC=ad,DC=server,DC=foo,DC=com
and
myADaccountname@ad.server.foo.com
但我还是遇到了同样的问题
对于 Active Directory,uid
应该是:
uid: 'sAMAccountName'
Gitlab 应使用 bind_dn
中指定的用户和给定的密码进行连接。
从 GitLab 9.5.1 开始,uid
现在需要 [
]
看到这个问题:https://gitlab.com/gitlab-org/gitlab-ce/issues/37120
这可能只是一个将被修复的错误。
我必须将 Active Directory 的值从上面的答案更新为:
uid: ['sAMAccountName']
我在 RHEL 6.6 上使用 GitLab Omnibus 7.10.0。我使用以下配置启用了 LDAP:
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: 'FOO COM Active Directory (LDAP)'
host: 'ad.server.foo.com'
port: 3268
uid: 'someuser'
method: 'plain' # "tls" or "ssl" or "plain"
bind_dn: 'CN=My Whole. Name,OU=Some Users,DC=ad,DC=server,DC=foo,DC=com'
password: 'thepassword'
active_directory: true
allow_username_or_email_login: false
block_auto_created_users: false
base: 'DC=ad,DC=server,DC=foo,DC=com'
user_filter: ''
# ## EE only
# group_base: ''
# admin_group: ''
# sync_ssh_keys: false
#
# secondary: # NOT FILLED OUT
EOS
我的问题是我无法让用户通过 LDAP 进行身份验证。我不确定配置是否错误,或者我需要在服务器端做一些事情(我无法直接访问)。当我运行
gitlab-rake gitlab:ldap:check RAILS_ENV=production
我明白了
Checking LDAP ...
LDAP users with access to your GitLab server (only showing the first 100 results)
Server: ldapmain
Checking LDAP ... Finished
我可以使用此帐户(我的个人帐户)或其他应用程序的其他帐户使用 java 搜索个人用户,但无法让 AD 与 gitlab 一起使用。我通过 运行 在 Windows 框上执行此命令得到了 bind_dn "My Whole. Name"。 gpresult -r
我也试过 bind_dn 的:
uid=myADaccountname,OU=Some Users,DC=ad,DC=server,DC=foo,DC=com
and
myADaccountname@ad.server.foo.com
但我还是遇到了同样的问题
对于 Active Directory,uid
应该是:
uid: 'sAMAccountName'
Gitlab 应使用 bind_dn
中指定的用户和给定的密码进行连接。
从 GitLab 9.5.1 开始,uid
现在需要 [
]
看到这个问题:https://gitlab.com/gitlab-org/gitlab-ce/issues/37120 这可能只是一个将被修复的错误。
我必须将 Active Directory 的值从上面的答案更新为:
uid: ['sAMAccountName']