Drupal for AD認證

最近一陣子都在玩Drupal,由於公司需求,要讓Drupal能夠
經由Active Directory認證,來達成一組帳號,行遍天下的目的,
想當然爾,去問了G老大,
Drupal有支援LDAP及AD的認證,這是不用講的,
就在於如何設定呢……參閱了MartOn所寫的,
怪了,怎麼設就不對,
差點都快瘋了,
才發現DN for non-anonymous search:的地方設錯了,
之前都直接打administrator,
其實是要跟設LDAP一樣,完整的寫出DN,
但cn,ou有可能是中文的(問了Cyrus才發現),
天啊….為了這個問題,我竟然花了那麼久才弄好,唉!!!!
設定如下(請參閱MartOn所寫的會更清楚)


LDAP Integration settings:
Server settings:
Organization name: here I put our Active directory name
LDAP Server: here I put IP adress to a AD controller
LDAP Port: 389
Use Start-TLS encryption Not selected
Store passwords in encrypted form Not select
Login procedure:
Base DNs: here you have to set your DN path to where your users reside.
Example:
If you have a AD named: ad.mycompany.int
And users are stored in the Internal OU (it will automatically look in sub-OUs, so this is the top most)
String is then: OU=Internal,DC=ad,DC=mycompany,DC=int
Username attribute: sAMAccountName
Email attribute:mail
Advanced config:
DN for non-anonymous search: your sys AD account
(請填寫完整DN,就敗在這)
Password for non-anonymous search: password for your sys AD account

LDAP Data settings:
Drupal-LDAP fields mapping
Same, but read-only mode SELECTED
Drupal field - LDAP attribute
mail = mail
the other I have blank, since I do not need them
Editing LDAP attributes directly(Attribute Visibility & Access Control)
Attributes displayed on user pages: Here I checked Last Name, Common Name
Attributes that can be edited by users: Here I have non chosen since I do not want drupal to write back to AD
Advanced configuration
Here is the same as on ldapauth(LDAP Integration)

LDAP Groups settings:
Group is specified in user's DN Not select
Attribute of the DN which contains the group name: OU
Groups are specified by LDAP attributes: SELECTED
Attribute names (one per line): MemberOf
Groups exist as LDAP entries where a multivalued attribute contains
the members' CNs Not Selected
Nodes containing groups (one per line):
Here I have the same DN as in ldapauth(LDAP Integration)
Example:
If you have a AD named: ad.mycompany.int
And users are stored in the Internal OU
(it will automatically look in sub-OUs, so this is the top most)
String is then: OU=Internal,DC=ad,DC=mycompany,DC=int

Attribute holding group members: memberUid

17 則留言:

  1. 我也是剛解決這個問題, 但是又遇到另一個問題, 要等所有User登入過, 才會在Drupal建立, 長官們可沒空登入, 相關的權限設定就無法進行, 請問您有無每日將AD上所有帳號同步到Drupal的解決方案嗎?

    回覆刪除
  2. 在AD建群組,
    User劃分好群組,
    那麼User登入drupal,
    就會帶這個群組,
    也就可用群組設權限,
    你的長官們沒空登入,
    你也可先建好群組,設好權限
    所以不明白,
    為何AD上的帳號需要跟Drupal同步,
    因為我的Drupal上的帳號,
    是以AD為準

    回覆刪除
  3. 請問小弟也最近剛剛架設Drupal要跟LDAP整合連線AD網域為主,一直設定沒有成功,看到你那邊文章,說到關鍵DN要打完整,請要要怎輸入呢?

    回覆刪除
  4. cn=portal,ou=RD,ou=IT,dc=test,dc=com,dc=tw
    其中portal這個帳號是你AD有建的,
    我之前一直弄錯,
    就在於
    我直接打admin
    應是要打完整DN

    回覆刪除
  5. 了解,能不能請你到Drupal官方看我發表文章,我都照你去做。還是沒有成功,LDAP Authentication內設定不是有選項Choose authentication mode和Choose user conflict resolve procedure,我都選第二個選項,儲存後,結果被強制選第一個不給我選第二個,不知原因在哪裡?請你能看這這連結網址嗎?有圖片~~http://drupaltaiwan.org/forum/20090527/3430,誠懇拜託你嚕,不知道貴兄是否有意願分享Drupal網站留一個教學如何成功連LDAP的AD網域?

    回覆刪除
  6. 你在drupaltaiwan上留的問題,
    1.是我昨天講的那一個
    2.MemberOf
    3.Nodes containing groups (one per line):
    輸入 OU=test,DC=test,DC=com,DC=tw
    其中OU的test,要看你公司AD網域是設什麼

    回覆刪除
  7. LDAP directory only ,
    我是選這選項,
    而之前在設定,
    我跟你一樣是參考以下這個網址的
    http://drupal.org/node/80020
    留教學文件...
    我都是參考官方網站的呀,
    我可以整理當初設定,
    在貼出來
    不過感覺
    你裝的ldap_integration版本,
    好像和我不同
    想請問你裝的Drupal
    及ldap_integration是什麼版本

    回覆刪除
  8. 我已做了圖解
    http://legnaneerg.blogspot.com/2009/06/drupal-for-ad-for.html
    如不行,
    再討論吧!!!

    回覆刪除
  9. 我家公司Drupal版本是6.10版本,ldap_integration也是抓6.x-1.0-alpha版本,我都照你去做,仍然不給我選第二項,我想懷疑這個檔案是不是壞掉或者根本沒有寫入?請問你的Drupal版本是不是5.xx版?

    回覆刪除
  10. 版大,我換Drupal5.7+LDAP Integration5.X版,設定成功整合LDAP可以連線AD網域。Drupal6.10+LDAP Integration6.1x版無法成功整合。我被玩耍了...........

    回覆刪除
  11. 我好像忘了講,
    我是用Drupal 5.7版的,
    6.x版的..我沒玩過
    實在是抱歉

    回覆刪除
  12. 你好~想詢問有關ldap的問題~
    若使用者以ldap登入~我要如何讓它跟我drupal設的角色做結合呢?
    因為若我有分各區域~各區域又有各單位~
    而ldap中能讓單位做群組。因為配合我設的角色分類,各角色都有它的權限在~不知能這樣設定嘛?

    如果我的角色分為
    最高管理者
    區域1管理者
    區域1使用者
    ---------
    區域2管理者
    區域2使用者
    ---------
    區域3管理者
    區域3使用者
    ---------
    區域4管理者
    區域4使用者

    回覆刪除
  13. 因為我沒有在ldap中去做權限區分,
    而是讓Drupal去讀AD的帳號及群組,
    其權限是在drupal設定的,
    不好意思,
    沒法幫上你

    回覆刪除
  14. 謝謝回覆~
    還有一個問題~目前已成功ldap了~
    然後啊使用者登入drupal後
    的個人資訊頁中會出現~以下訊息
    其中可以有辦法設定不讓使用者看到
    LDAP dn中的部份嘛?



    ---------------------------
    LDAP authentication
    LDAP server
    LDAP
    LDAP dn
    uid=xxxxx,ou=xxx,ou=xxx,ou=xxx,dc=xxx,dc=com,dc=tw

    紀錄

    註冊了
    35 分鐘 39 秒

    回覆刪除
  15. 這個我要試一下,
    因為我也跟你一樣

    回覆刪除
  16. 剛看了一下,才發現我的問題點和妳不同,
    你只要將權限中,
    將authorship 模組,
    不要打勾即可
    我遇到的是,
    想將個人資訊中的電子郵件位址
    拿掉,
    但不知如何用

    回覆刪除