This shows you the differences between two versions of the page.
saisp:labs:01:contents:07 [2014/01/24 18:58] razvan.deaconescu [07. [10p] Configurare suport de LDAP în DokuWiki] |
saisp:labs:01:contents:07 [2014/02/22 17:32] (current) alexandru.carp |
||
---|---|---|---|
Line 1: | Line 1: | ||
==== 07. [15p] Configurare suport de LDAP în DokuWiki ==== | ==== 07. [15p] Configurare suport de LDAP în DokuWiki ==== | ||
- | * (tutorial) Integrare LDAP în DokuWiki | + | Folosind conturile de mai sus putem realiza autentificarea în diverse servicii care folosesc ca backend de autentificare LDAP. Un astfel de serviciu este wiki-ul de tipul DokuWiki. |
+ | Pe stația client este instalat și configurat serverul web Apache cu suport PHP și pachetul ''php5-ldap'' care oferă implementarea clientului de LDAP în PHP. Alte module (''userdir'', ''ssl'') sunt configurate și activate. | ||
+ | Vom configura o instanță de DokuWiki în contul utilizatorului ''student'' de pe stația client. În directorul home al utilizatorului ''student'' găsiți creat directorul ''public_html/dokuwiki/'' unde vom instala instanța de DokuWiki. Pentru instalarea instanței intrăm în directorul ''admin-public.git/dokuwiki/'' din directorul home al utilizatorului ''student'' și rulăm scriptul de instalare ''dw-install''. Întâi rulăm scriptul fără argumente ca să vedem ce opțiuni sunt disponibile:<code bash> | ||
+ | student@ldap-client:~/admin-public.git/dokuwiki$ ./dw-install | ||
+ | DokuWiki basic installation script | ||
+ | Usage: | ||
+ | ./dw-install installation-directory download-url wiki-url | ||
+ | Sample usage: | ||
+ | ./dw-install ~/public_html/dw-test/ http://www.splitbrain.org/_media/projects/dokuwiki/dokuwiki-2011-05-25a.tgz http://swarm.cs.pub.ro/~razvan/dw-test | ||
+ | </code> | ||
+ | |||
+ | Apoi rulăm scriptul pentru realizarea instalării efective:<code bash> | ||
+ | student@ldap-client:~/admin-public.git/dokuwiki$ ./dw-install ~/public_html/dokuwiki/ http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz http://192.168.0.3/~student/dokuwiki | ||
+ | |||
+ | * Logging information to /tmp/tmp.anntIlR19E. | ||
+ | * Using download link http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz | ||
+ | * Downloading DokuWiki ... done. | ||
+ | * Preparing installation folder /home/student/public_html/dokuwiki/ ... done. | ||
+ | * Installing plugins | ||
+ | * Installing plugin: Creole ... done. | ||
+ | * Installing plugin: Google Analytics ... done. | ||
+ | * Installing plugin: Include ... done. | ||
+ | * Installing plugin: Index-Menu ... done. | ||
+ | * Installing plugin: Display-Wiki-Page ...done. | ||
+ | * Installing plugin: authsplit ...done. | ||
+ | * Installing plugin: authchained ...done. | ||
+ | |||
+ | Installation complete. | ||
+ | 1. Open in web browser: http://192.168.0.3/~student/dokuwiki/install.php | ||
+ | 2. Fill required information to complete the basic installation. | ||
+ | 3. Remove /home/student/public_html/dokuwiki//install.php.bak file. | ||
+ | 4. Run: | ||
+ | ./dw-post-install /home/student/public_html/dokuwiki/ /~student/dokuwiki/ | ||
+ | </code> | ||
+ | |||
+ | Apoi parcurgem pașii de mai sus (1, 2, 3, 4) ca să definitivăm instalarea. În acest moment, la adresa http://192.168.0.3/~student/dokuwiki/ poate fi accesat wiki-ul. Se poate face autentificarea cu utilizatorul indicat la pasul 1, în interfața web de instalare/configurare a DokuWiki. | ||
+ | |||
+ | Pentru a realiza suport de autentificare prin LDAP folosim [[https://www.dokuwiki.org/plugin:authldap|indicațiile de pe site-ul DokuWiki]]. | ||
+ | |||
+ | Pentru început, adăugăm în fișierul de configurare ''/home/student/public_html/dokuwiki/conf/local.php'' suportul pentru autentificarea LDAP, prin adăugarea liniilor:<code php> | ||
+ | $conf['authtype'] = 'authldap'; | ||
+ | $conf['plugin']['authldap']['server'] = 'ldaps://192.168.0.2'; | ||
+ | $conf['plugin']['authldap']['version'] = 3; | ||
+ | $conf['plugin']['authldap']['usertree'] = 'dc=labs,dc=cs,dc=pub,dc=ro'; | ||
+ | $conf['plugin']['authldap']['grouptree'] = 'dc=labs,dc=cs,dc=pub,dc=ro'; | ||
+ | $conf['plugin']['authldap']['userfilter'] = '(&(uid=%{user})(objectClass=posixAccount))'; | ||
+ | $conf['plugin']['authldap']['groupfilter'] = '(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))'; | ||
+ | </code> | ||
+ | |||
+ | Dacă reaccesăm acum pagina instanței de wiki (http://192.168.0.3/~student/dokuwiki/), vom primi mesajul "User authentication is temporarily unavailable. If this situation persists, please inform your Wiki Admin." Pentru a rezolva această problemă activăm suportul pentru LDAP în fișierul ''/home/student/public_html/dokuwiki/conf/plugins.local.php'' și activăm linia corespunzătoare modulului LDAP:<code php> | ||
+ | $plugins['authldap'] = 1; | ||
+ | </code> | ||
+ | |||
+ | <note important> | ||
+ | Întrucât fișierul ''/home/student/public_html/dokuwiki/conf/plugins.local.php'' este posibil deținut de utilizatorul ''www-data'', nu-l veți putea modifica. Îl puteți în schimb șterge. Pentru a-l putea edita urmați pașii | ||
+ | - Creați o copie a fișierului. | ||
+ | - Ștergeți fișierul. | ||
+ | - Redenumiți copia în numele fișierului. | ||
+ | - Editați fișierul. | ||
+ | Comenzile sunt următoarele:<code bash> | ||
+ | student@ldap-client:~/public_html/dokuwiki/conf$ cp plugins.local.php tmp.plugins.php | ||
+ | student@ldap-client:~/public_html/dokuwiki/conf$ rm plugins.local.php | ||
+ | rm: remove write-protected regular file ‘plugins.local.php’? y | ||
+ | student@ldap-client:~/public_html/dokuwiki/conf$ mv tmp.plugins.php plugins.local.php | ||
+ | student@ldap-client:~/public_html/dokuwiki/conf$ vi plugins.local.php | ||
+ | </code> | ||
+ | </note> | ||
+ | |||
+ | În acest moment configurația este finalizată, iar autentificarea pe instanța de wiki (accesibilă la http://192.168.0.3/~student/dokuwiki/) va putea fi realizată folosind conturile de utilizatori LDAP adăugate atnterior. |