Gitlab 身份验证返回无效的用户名或密码(缺少 LDAP 窗格)

Posted

技术标签:

【中文标题】Gitlab 身份验证返回无效的用户名或密码(缺少 LDAP 窗格)【英文标题】:Gitlab Authentication returns invalid username or password (LDAP pane missing) 【发布时间】:2021-02-20 12:45:33 【问题描述】:

我在活动目录 LDAP 中有用户(每个用户都有一个用户名和电子邮件集)。 我在 gitlab.rb 中配置了 LDAP 身份验证并运行了“gitlab-ctl reconfigure”。 我使用 Gitlab 社区版。 以下命令返回用户,因此配置似乎没问题“sudo gitlab-rake gitlab:ldap:check”。 返回:

LDAP:...服务器:ldapmain LDAP 身份验证...成功 可以访问 GitLab 服务器的 LDAP 用户(仅显示前 100 个结果)

DN: cn=Mike Gordon,cn=users,dc=ad,dc=mydomain,dc=com sAMAccountName: mike.gordon

...这里是其他用户

我正在尝试使用 LDAP 用户名 mike.gordon 和“登录”gitlab 窗格上的相应密码登录,但我得到“无效的用户名或密码”。 一些屏幕截图显示有一个 LDAP 窗格,但即使使用以下命令也不会显示: gitlab_rails['prevent_ldap_sign_in'] = false

这是我的配置:

main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: 'myAdUrl'
port: 3268
uid: 'sAMAccountName'
bind_dn: 'CN=serveur-ovh,CN=Users,dc=ad,dc=mydomain,dc=com'
password: 'adpassword'
encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
active_directory: true
allow_username_or_email_login: false
base: 'dc=ad,dc=mydomain,dc=com'
user_filter: ''
#lowercase_usernames: false
#block_auto_created_users: false
#verify_certificates: true
#smartcard_auth: false
### EE only

非常感谢您的帮助。

【问题讨论】:

如果没有错误日志,请尝试将 allow_username_or_email_login: false 更改为 true,然后使用 mike.gordon 或他的电子邮件重试 感谢您的回答。设置为 true 并重新配置 + 重新启动 gitlab 不起作用。您在谈论日志:我检查了 application;json 和 production.json 日志,但没有找到任何东西。您知道要检查的其他日志吗? 你可以在活动目录中找到有用的日志,你会看到传入的请求和失败的原因 【参考方案1】:

比较你的配置和我的配置,我有一个 user_filter 值

###! **remember to close this block with 'EOS' below**
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: 'ADHostname.example.com'
port: 636
uid: 'sAMAccountName'
method: 'ssl' # "tls" or "ssl" or "plain"
bind_dn: 'cn=UserID,ou=SystemAccounts,dc=example,dc=com'
password: 'AccountPasswordGoesHere'
active_directory: true
allow_username_or_email_login: false
block_auto_created_users: false
base: 'ou=ResourceUsers,dc=example,dc=com'
user_filter: '(&(sAMAccountName=*))' # Can add attribute value to restrict authorized users to GitLab access, we leave open to all valid user accounts in the OU. Should be able to authorize based on group membership using linked attribute value like (&(memberOf=cn=group,ou=groupOU,dc=example,dc=com))
attributes:
username: ['uid', 'userid', 'sAMAccountName']
email: ['mail', 'email', 'userPrincipalName']
name: 'cn'
first_name: 'givenName'
last_name: 'sn'

EOS

【讨论】:

我像你提到的那样添加了 user_filter,但它没有用。我还尝试正确缩进文件,因为在重新配置后它似乎是强制性的原因,它会生成一个 yaml 但也不起作用。我被卡住了,girlab 论坛没有回答。我在 gitlab UI 中没有 ldap 选项卡进行身份验证。我只有“登录”和“注册”。你有这个“LDAP”标签来登录吗?

以上是关于Gitlab 身份验证返回无效的用户名或密码(缺少 LDAP 窗格)的主要内容,如果未能解决你的问题,请参考以下文章

gitlab的无效双因素代码

PayPal PHP SDK:由于身份验证凭据无效或缺少授权标头,身份验证失败

无法从 Ldapmain 对您进行身份验证,因为“<用户名> 的凭据无效”-通过 Helm Chart 安装的 Gitlab 社区版

Jwt 身份验证问题 - 凭据无效

Shopware REST Api - 身份验证无效或缺失

使用 GitLab 令牌无需身份验证即可克隆