Gitlab LDAP身份验证

时间:2015-09-05 05:33:26

标签: ldap gitlab

我在某处安装了Gitlab服务器,我正在尝试让它为我的AD用户工作。我有以下配置:

Select cast(id as varchar(max)), score1, score2, score1+score2 as sum, (CONVERT(DECIMAL(10,2),score1)+score2)/2 as average
from yourtable
UNION ALL
Select 'Total', (select sum(score1) from yourtablename) as Score1Total,(select sum(score2) from yourtablename) as Score2Total, (select sum(score1)+sum(score2) from yourtablename) as TotalSum, (select (CONVERT(DECIMAL(10,2),sum(score1))+sum(score2))/count(*)) from yourtablename as TotalAverage

但我无法使用提供的设置登录。

我对LDAP设置不太熟悉,但这是PHP中的一个代码,用于登录我们的内部系统,并且运行良好:

label: 'LDAP'
host: 'myserver.com'
port: 389
#uid: ''
method: 'plain' # "tls" or "ssl" or "plain"
bind_dn: ''
#password: ''
active_directory: true
allow_username_or_email_login: true
block_auto_created_users: false
base: ''
user_filter: ''
## EE only
group_base: ''
admin_group: ''
sync_ssh_keys: false

我想我不知道将$ldap = ldap_connect("ldap://myserver.com/"); if(!ldap_bind($ldap, "DOMAIN\\$username", $password)) { echo "Authentication Error"; } else { echo "OK"; } 放在Gitlab配置中的哪个位置。

我已经完成了问题并用Google搜索,没有任何效果。

我还尝试使用DOMAINusername以及DOMAIN\usernameusername@myserver.com登录,但都没有效果。

通过一些配置(我不记得确切的内容,但如果有必要我会找到它),我在日志中遇到以下错误:

username@DOMAIN

修改

这就是我的配置现在的样子,但仍无效。

ArgumentError (uid or filter MUST be provided):

作为参考,这是SVN服务器使用我们AD的方式:

label: 'LDAP'
host: 'myserver.com'
port: 389
uid: 'sAMAccountName'
method: 'plain' # "tls" or "ssl" or "plain"
bind_dn: 'CN=gitldap,CN=Users,DC=myserver,DC=com'
password: 'thepassword'
active_directory: true
allow_username_or_email_login: true
#block_auto_created_users: false
base: 'ou=MyServer,dc=myserver,dc=com'
#user_filter: ''
### EE only
#group_base: ''
#admin_group: ''
#sync_ssh_keys: false

我必须提到SVNParentPath /var/svn SSLRequireSSL AuthType Basic AuthName "MyServer Source Control System" AuthBasicProvider ldap AuthzLDAPAuthoritative on AuthLDAPBindDN "CN=svnldap,CN=Users,DC=myserver,DC=com" AuthLDAPBindPassword 'thepassword' AuthLDAPURL "ldap://dc-2.myserver.com:389/ou=MyServer,dc=myserver,dc=com?sAMAccountName" NONE AuthzSVNAccessFile /etc/svn/dav_svn.authz Require valid-user myserver.com解析同一台机器。

2 个答案:

答案 0 :(得分:1)

第一步是使用ldapbind检查对LDAP的绑定(例如参见" Using ldapbind to Authenticate")。

正如OP提到的那样,它允许检测用户ID是否正确。

  

我必须使用Common name,它是bind dn中的名字+姓氏   我误用了用户名。
  我使用Git LDAP代替gitldap,一切正常

答案 1 :(得分:0)

您需要为GitLab创建一个AD用户帐户(&#34;服务帐户&#34;),其ID和密码必须在GitLab配置中指定为<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="200dp" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TableRow android:layout_width="match_parent" android:layout_height="match_parent"></TableRow> <TableRow android:layout_width="match_parent" android:layout_height="match_parent"></TableRow> <TableRow android:layout_width="match_parent" android:layout_height="match_parent"> <TableRow android:layout_width="match_parent" android:layout_height="match_parent" android:layout_column="4"></TableRow> </TableRow> </TableLayout> bind_dn

password应设置为&#39; sAMAccountName&#39;。

这与您在PHP中所做的不同。您使用用户的凭据通过LDAP访问AD。 GitLab将使用它自己的用户帐户,然后查找用户。