Debian

OpenLdap 配置問題

  • August 11, 2017

在過去的幾天裡,我一直在拼命閱讀官方/使用者製作的指南,以便正確配置我的 openldap 以允許使用者登錄到項目管理 web 應用程序(即 Redmine)。話雖如此,請讓我分享我正在處理的環境的基本設置。

網路應用程序:

Redmine, Phpldapadmin

LDAP:

開放式LDAP

安裝後,我採取以下步驟重新配置我的 ldap 以更好地反映生產中使用的 ldap(因為整個 redmine + ldap 尚未投入生產)

  1. 停止 slapd 服務並從**/etc/ldap/slapd.d中刪除****cn=config.ldif**
  2. 將/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
  1. 之後,slaptest -f /usr/share/slapd/slapd.conf -F /etc/ldap/slapd.d生成了我的新cn=config.ldif
  2. 使用chown -R openldap:openldap /etc/ldap/slapd.d/將適當的使用者/組設置為新的cn=config.ldif
  3. 啟動 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 配置中。經過幾個小時/幾天的使用ACLdpkg-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=

https ://tools.ietf.org/pdf/rfc3494.pdf

我會指出你在 Ubuntu 網站上的一篇好文章 - ldapguide

但是我會輸出兩個使用者,一個在工作,一個不在工作,然後看看區別。我想你會發現沒有設置密碼。你能輸出那個嗎?

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