OpenLdap 配置問題
在過去的幾天裡,我一直在拼命閱讀官方/使用者製作的指南,以便正確配置我的 openldap 以允許使用者登錄到項目管理 web 應用程序(即 Redmine)。話雖如此,請讓我分享我正在處理的環境的基本設置。
網路應用程序:
Redmine, Phpldapadmin
LDAP:
開放式LDAP
安裝後,我採取以下步驟重新配置我的 ldap 以更好地反映生產中使用的 ldap(因為整個 redmine + ldap 尚未投入生產)
- 停止 slapd 服務並從**/etc/ldap/slapd.d中刪除****cn=config.ldif**
- 將/usr/share/slapd/slapd.conf修改為:
include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args loglevel none modulepath /usr/lib/ldap moduleload back_mdb sizelimit 500 tool-threads 1 backend mdb database mdb suffix "o=testcompany.com" rootdn "cn=admin,o=testcompany.com" directory "/var/lib/tc-ldap" rootpw "password" index objectClass eq index uid eq index ou eq index default eq,sub lastmod on checkpoint 512 30 access to attrs=userPassword,shadowLastChange by dn="cn=admin,o=testcompany.com" write by anonymous auth by self write by * none access to dn.base="" by * read access to * by dn="cn=admin,o=testcompany.com" write by * read
- 之後,slaptest -f /usr/share/slapd/slapd.conf -F /etc/ldap/slapd.d生成了我的新cn=config.ldif
- 使用chown -R openldap:openldap /etc/ldap/slapd.d/將適當的使用者/組設置為新的cn=config.ldif
- 啟動 slapd 服務並檢查 ldap 是否正在執行。因為它是並且我可以使用 phpldapadmin 訪問它,所以我添加了一個organizationsUnit (ou=sales),所有國家程式碼並導入了 3000 個使用者(通過使用ldapadd)現在我的 DIT 如下所示
- o=testcompany.com - ou=sales - AD + uid=123456,c=AD,ou=sales,o=testcompany.com + ...
太好了,這正是它應該看起來的樣子,但是我注意到cn=admin,o=testcompany.com條目不存在,而在我安裝 openldap 後它確實使用了預設配置。 6. 在 Redmine 中,我已經配置並測試了ldap authentication。它工作正常(它既可以連接到我的 ldap,如果我想添加一個新使用者並為其選擇之前配置的 ldap 身份驗證,我什至可以從我的 ldap 中的條目中進行選擇,這也很棒) 7. 但是(這是我的問題所在)當我嘗試使用我剛剛創建的使用者(使用 ldap 身份驗證)登錄 Redmine 時,我總是收到Invalid credentials錯誤(當我使用任何其他帳戶登錄時它就像一個魅力,使用簡單身份驗證創建)
這些事件使我相信錯誤出在 LDAP 配置中。經過幾個小時/幾天的使用ACL和dpkg-reconfigure slapd(甚至清除-重新安裝 slapd 和 ldap-utils),我仍然無法超越這一點。還有一點資訊,在dpkg-reconfigure slapd並在預設****dc=example,dc=com下創建幾個使用者之後,我可以讓他們很好地登錄 Redmine(甚至cn=admin,o=testcompany.com出現…)。
下面我將附上一些我嘗試過的東西。我希望有人可以為我提供一些關於我在哪裡偏離軌道的提示(不知何故,我覺得我在這裡錯過了明顯的東西)。
到目前為止我已經嘗試過:
1. modify the default slapd.conf file, and repeat the process i've written above 2. create a completely new one 3. a lot of different ways to add/modify the ACL 4. read through a lot of mailing list, similar problems on redmine forums, and openldap mailing lists, still no success (i can paste a lot of links from my .txt if you need it)
請嘗試更改您的根 dn 以使用 dc=testcompany,dc=com 刪除點 ‘.’
點“。” 是 ldap DN 規範的不同部分的分隔符 https://www.rfc-editor.org/rfc/rfc1779#section-2.2
也嘗試在您的 slapd.conf 文件中指定 ldapv3,它將 o= 辨識為 ou=
我會指出你在 Ubuntu 網站上的一篇好文章 - ldapguide
但是我會輸出兩個使用者,一個在工作,一個不在工作,然後看看區別。我想你會發現沒有設置密碼。你能輸出那個嗎?