Drupal 整合 Windows AD

Drupal LDAP 整合模組在 https://drupal.org/node/15109,下載後,上傳到 /sites/all/modules 然後啟用模組。

啟用後先進入授權方式設定,選擇 LDAP directory only,只用 LDAP 授權,不再在 Drupal 新增帳號。原有的 Admin 還會存在,不受影響。

接下來的 Security Options 勾選 Do not store users’ passwords during sessions.

LDAP UI Options 的部份可考慮勾選 Remove password change fields from user edit form,這樣會移除在登入畫面的「索取新密碼」的功能。email也不讓使用者自行修改。因為安全上的考量,不讓 Drupal 寫入 AD 主機。

接著設定 AD 主機資料,這個決定登入的帳號和密碼的驗證。名稱自行命名,LDAP server  可寫入ip,或完整的主機名稱。

Login procedure 對沒有 LDAP 經驗的人來說,比較不容易了解。BASE DNs 要填入完整的域名及OU(組織單位)。例如,有家公司的 DN 是 goo.com.tw ,架設 AD 的人設定了公司頂級的容器物件叫 headoffice ,那麼 BASE DNs 就是 ou=headoffice,cn=goo,cn=com,cn=tw ,以此類推你的 BASE DNs 。
下方的 UserName attribute ,因為用的是 Windows 的 AD ,所以是 sAMAccountName 。

LDAP Server 設定最重要的步驟在這裡。一般 AD 都不會開放匿名查詢,所以一定要填入有權限的帳號。通常是 Administrator 。在 LDAP 的世界裡, Administrator 一定要有完整的 CN ,以上述的 DN 為例,就是 cn=Administrator,cn=users,dc=goo,dc=com,dc=tw,密碼就是原來的密碼。(圖中資料是我的例子,照抄不會有作用,請注意。)

Data 的設定比較單純,看圖即可。

Group 的設定目的是藉由 AD 中各個使用者的隸屬群組,來作為 Drupal  的權限管控,方便管理網站。

進入 Group 之後,選「編輯」進行設定。

Group by DN 下的 Attribute of the DN which contains the group name:填入 OU 即可。

Group by attribute 項目下勾選 Groups are specified by LDAP attributes。這個選項對於日後想要依 AD 的群組去做權限管控很重要,有勾選,系統會在使用者的角色自動帶入 AD 的群組名稱。不勾選,就只會建立一般使用者。

Attribute names (one per line): 填入 memberOf 。(如果想了解為什麼,請自行研究 LDAP 書籍)

Group by entry 項目下的 LDAP DNs containing groups (one per line):如果以前述的 DN 為例,要填入 OU=headoffice,DC=goo,DC=com,DC=tw (圖中是我的例子,請填上你的 DN) Attribute holding group members:請填入 memberUid

LDAP 的設定到此告一個段落。基本上,任何一個 AD 上的帳號都可以登入網站了,但這不是最終目的,各使用者的權限管理才是重點。

Drupal LDAP 整合模組並不會自動將 AD 上的群組和帳號抓取到網站上,經過測試發現,各群組的其中一個人只要登入後,就會產生一個使用者的資料,並將其所屬的群組資料帶入。在使用者的頁面中,會出現「角色」的資料,這個就是 AD 上的群組。

「角色」資料產生後,就可以依此進行操作權限相關的設定。由「角色」去設定,以不用一個一個帳號設定權限,要不然,公司幾百名員工,MIS 會設定到死掉。

參考資料:
1. 潛下去是為了浮出來
2. Use ldapgroups with M$ Windows 2003 Active Directory

2 thoughts on “Drupal 整合 Windows AD

  1. 您好,想詢問drupal 若要與windows Active Directory 的ad 做連結使用這模組就可以了嘛?

    >w<謝謝

發表迴響