ldap_integration modul

Az LDAP integráció arra való, hogy LDAP adatbázisokból authentikáljuk a felhasználót. Mit jelent ez? Péládul Windows Active Directory-t, OpenLDAP szervert, vagy Novell NDS-t.
Egy website-on egy Active Directory-val való integrálása eléggé sokáig tartott nekem, ezért leírom a modul tulajdonságait és használatbavételét.
A tulajdonságai

  • Ha nem létezik a Drupal adatbázisban a megadott nevű user, akkor a megadott LDAP szerverről authentikálja, és felveszi a Drupal userek közé az authentikált usert.
  • Van lehetőség arra is, hogy a Drupal és az LDAP szerver usereit szinkronban tartsa, azaz a név, email cím és jelszó adatokat oda-vissza frissítse. Persze a jelszó frissítése biztonsági kérdéseket vet fel!.
  • Sajnos csak nyílt módon tudja a kommunikációt lebonyolítani a Drupal és a szerver egymással, ezért a csomagokat nem szabad kiengedni a Netre.
  • Van lehetőség a csak LDAP alapú beléptetésre is.
  • A Drupal site 1-es számú (admin) userét nem authentikálja az LDAP szerverrel!

Beállítása

  • A PHP-ban be kell kapcsolni az ldap támogatást.
  • Meg kell győződni arról, hogy az LDAP be van-e állítva a PHP-ban. Ezt az alábbi egysoros kóddal lehet leellenőrizni:
<?php
    phpinfo();
?>

Ha az eredményül kapott HTML kódban van LDAP rész, akkor telepítve van. Ha nincs, akkor a PHP.ini extensions beállításai között engedélyezni kell a php_ldap extensiont.

  • le kell tölteni a http://drupal.org/project/ldap_integration helyről a modult és betenni a modul könyvtárba, majd engedélyezni.
  • A továbbiakban létre kell hozni az LDAP szerverrel a kapcsolatot, ami abból áll, hogy
    • Server Settings
      • Adminisztráció/Modulok/LDAP auth/ LDAP Integration útvonalon megnyitjuk a beállítóoldalt. Ha nincsen még LDAP kapcsolat, akkor létre kell hozni egy újat, ha pedig már létezik, akkor kilistázza a létezőket és abból lehet választani.
      • A System Wide Options beállítással meg lehet adni,
        • csak LDAP authentikáció vagy
        • Drupal adatbázis alapú, néha az nem működik, akkor LDAP
      • Egy LDAP szerver konfigurálásako az alábbiakat kell megadni:
        • Név: ez lesz a kapcsolat neve pl. Céges AD kapcsolat
        • LDAP Server: www.cegnev.local
          (Általában nem célszerű egy AD-t kitenni az internetre, ezért adok ilyen evet, de ha van "igazi" domain név azt is meg klehet adni, vagy IP címet is.)
      • Port: 389, ha nincs titkosítás, AD esetén 636 kell, ha van titkosítás.
      • Use Start-TLS: Bekapcsolni, ha akarunk titkosítást (Sajnos a titkosítással nem ment, tehát ne kapcsoljuk be!)
      • Store Password in encrypted form: Ha a user jelszavát a Drupal adatbázisban akarjuk tárolni. MD5-tel titkosítva tárolja az adatbázisban a Drupal, hasonlóan az LDAP szerverekhez.
    • Login procedure
      • Base DNs: cn=Users, dc=www, dc=cegnev, dc=local - Tipikus beállítás egy AD esetén
        Több AD konténert is megadhatunk, soronként egyet, ekkor végignézi az authetnikációnáé az összeset a modul.
      • UserName attiribute: SAMAccountName - Ez a windows SAM-ben tárolt userazonosító név
      • Email attribute: mail - ha akarunk emailt is tárolni a userről
    • Advanced configuration
      • Az Active Directory általában nem engedélyezi az anonymous usereknek, hogy lekérdezzenek azonosító adatokat, ezért célszerűen létre kell hoznunk egy olyan usert az ADA-ben, akinek elég joga van az adatok lekérésére, de nincsen joga semmi egyébre! A megadás módja az LDAP-nál szokásos. Példánkban ez a drupalauth a Users konténerből.
        DN for non-anonymous search: cn=drupalauth, cn=Users, dc=www, dc=cegnec, dc=local
      • clear current password - Ennek a checkboxnak a beállítása
  • Az oldal végén Save Configuration, majd még egyszer meg kell nyitni a beállító ablakot, mert ekkor megjelenik az Advanced configurationban még egy sor:
    • Password: Ide kell beírni a korábban megadott drupalauth jelszabát, amit az AD-ben is korábban beállítottunk!

Ha a fentiekkel megvagyunk, ki lehet próbálni a cuccot. Javasolt, hogy az AD szerver és a Drupal vagy egy szerveren legyen (WAMP szerver pl.), vagy az AD szerver és a Drupal kiszolgáló egy intranet hálózatban legyen, mivel a csomagok utazgatnak a hálózaton és a user aznosítókat el lehet kapni TCP/IP dump programmal.