我在我的 laravel 应用程序上使用 ldap 记录。
我的 .env 文件中有以下内容:
LDAP_LOGGING=true
LDAP_CONNECTION=default
LDAP_CONNECTIONS=default
LDAP_DEFAULT_HOSTS="ad01.company.com"
LDAP_DEFAULT_USERNAME="CN=csh_dashboard_ldap,OU=Service Accounts,DC=company,DC=com"
LDAP_DEFAULT_PASSWORD="password!"
LDAP_DEFAULT_PORT=636
LDAP_DEFAULT_BASE_DN="dc=company,dc=com"
LDAP_DEFAULT_TIMEOUT=20
LDAP_DEFAULT_SSL=true
LDAP_DEFAULT_TLS=false
LDAP_DEFAULT_SASL=false
LDAP_DEFAULT_OPT_PROTOCOL_VERSION=3
以及
/etc/ldap/ldap.conf
中的以下内容
#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
#BASE dc=example,dc=com
#URI ldap://ldap.example.com ldap://ldap-provider.example.com:666
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
TLS_REQCERT hard
# TLS certificates (needed for GnuTLS)
# TLS_CACERT /etc/ssl/certs/ca-certificates.crt
TLS_CACERT /etc/ssl/certs/jh-company.ca.pem
我从
php artisan ldap:test
收到以下错误
| default | ✘ No | CN=csh_dashboard_ldap,OU=Service Accounts,DC=company,DC=com | ldap_bind_ext(): Unable to bind to server: Can't contact LDAP server (-1). Error Code: [-1] Diagnostic Message: (unknown error code) | 320.86ms |
如果我在
/etc/ldap/ldap.conf
中更改以下内容,我会收到一条成功消息:
TLS_REQCERT never
default | ✔ Yes | CN=csh_dashboard_ldap,OU=Service Accounts,DC=company,DC=com | Successfully connected. | 291.81ms
该证书具有以下权限:
user@server:/var/www/csh-dashboard$ ls /etc/ssl/certs/jh-company.ca.pem -l
lrwxrwxrwx 1 root root 47 Apr 26 09:32 /etc/ssl/certs/jh-company.ca.pem -> /usr/local/share/ca-certificates/jh-company.ca.crt
我还可以通过 telnet 636 访问 ldap 服务器,所以我不认为该端口被阻止。
有人可以帮忙吗?我不知道还能做什么。
嗯,我在 .env 文件中使用了以下内容:
LDAP_DEFAULT_OPT_X_TLS_REQUIRE_CERT = "LDAP_OPT_X_TLS_HARD"