Centos

如何通過命令行向 LDAP 進行身份驗證?

  • September 13, 2020

LDAP 伺服器託管在 Solaris 上。客戶端是 CentOS。通過 LDAP 進行的 OpenLDAP/NSLCD/SSH 身份驗證工作正常,但我無法使用 ldapsearch 命令來調試 LDAP 問題。

[root@tst-01 ~]# ldapsearch
SASL/EXTERNAL authentication started
ldap_sasl_interactive_bind_s: Unknown authentication method (-6)
       additional info: SASL(-4): no mechanism available:
[root@tst-01 ~]# cat /etc/openldap/ldap.conf
TLS_CACERTDIR /etc/openldap/cacerts
URI ldap://ldap1.tst.domain.tld ldap://ldap2.tst.domain.tld
BASE dc=tst,dc=domain,dc=tld
[root@tst-01 ~]# ls -al /etc/openldap/cacerts
total 12
drwxr-xr-x. 2 root root 4096 Jun  6 10:31 .
drwxr-xr-x. 3 root root 4096 Jun 10 10:12 ..
-rw-r--r--. 1 root root  895 Jun  6 10:01 cacert.pem
lrwxrwxrwx. 1 root root   10 Jun  6 10:31 cf848aa4.0 -> cacert.pem
[root@tst-01 ~]#

我已經嘗試通過 ldapsearch 使用證書進行身份驗證,將 /etc/openldap/cacerts/cacert.pem 作為參數,但它不接受此證書進行身份驗證。

您可能希望關閉 SASL 並使用帶有“-x”選項的簡單身份驗證。例如,查找特定使用者的搜尋

ldapsearch -x -D "uid=search-user,ou=People,dc=example,dc=com" \
          -W -H ldap://ldap.example.com -b "ou=People,dc=example,dc=com" \
          -s sub 'uid=test-user'

將通過以下方式找到“測試使用者”

  • -D - 使用綁定使用者“search-user”
  • -W - 提示輸入密碼
  • -H - LDAP 伺服器的 URL。在這種情況下為非 SSL;對 SSL 使用“ldaps://”
  • -b - 搜尋庫
  • -s - 搜尋範圍 - 即樹的基礎,一個用於向下級別*,*一個用於遞歸搜尋樹(可能需要一段時間)
  • 最後將搜尋過濾器作為非選項參數。在這種情況下,我們將搜尋“test-user”的 uid

引用自:https://serverfault.com/questions/514870