ldap_integration modul

LDAP-Drupal

Az LDAP integráció arra való, hogy LDAP adatbázisokból authentikáljuk a felhasználót. Mit jelent ez? Például 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ásakor 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 lehet 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 AD-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 azonosítókat el lehet kapni TCP/IP dump programmal.