LDAP ToolBox Self Service Password
Sissejuhatus
LDAP ToolBox http://ltb-project.org/ Self Service Password (LTB SSP) on veebipõhine PHP keeles programmeeritud tarkvara, mille abil saab kasutaja ise oma LDAP kataloogis asuva konto, nt AD, parooli vahetada. Käesolev tekst kirjeldab juhtumit eeldusel, et kasutaja teab enda töötavat parooli. Kasutaja peab ise otsustama, kas seda teenust sobib kasutada avalikus internetis.
Tarkvara paigaldamine ja seadistamine
LTB Self Service Password programmi kasutamiseks on vajalik
- LDAP server (nt Active Directory), kus asuvad kontod, mille paroole muudatakse
- Apache + PHP rakendusserver
- PHP LDAP tugi
LDAP serveri ettevalmistamine
Viisakas on kui LDAP serveris on üks LTB SSP rakendusega seotud tavakasutaja, nt (First Name väärtuseks ltb_pwdchange jne)
cn=ltb_pwdchange,ou=Teenuskontod,dc=sise,dc=moraal,dc=ee
LDAP klienti kasutamise ettevalmistamine
Enne LTB SSP rakenduse juurutamist võiks veenduda, et üldse üle LDAP õnnestub AD'ga suhelda, nt öelda
$ ldapsearch -x -H ldap://ad-z1.sise.moraal.ee -D "cn=ltb_pwdchange,ou=Teenuskontod,dc=sise,dc=moraal,dc=ee" \ -w parool -b "dc=sise,dc=moraal,dc=ee"
Seejärel, et LDAPS toimib, üldiselt tuleb serveri sertifikaat (või CA juurikas) paigutada /etc/ldap/ldap.conf failist viidatud faili
# cat /etc/ldap/ldap.conf .. TLS_CACERT /etc/ldap/zentyal.pem
ning seejärel peab töötama
$ ldapsearch -x -H ldaps://ad-z1.sise.moraal.ee -D "cn=ltb_pwdchange,ou=Teenuskontod,dc=sise,dc=moraal,dc=ee" \ -w parool -b "dc=sise,dc=moraal,dc=ee"
Veebiserveri ettevalmistamine
Apache ja PHP paigaldatakse tavalisel viisil, lähtepunktiks võiks olla töötav https://imool.org/ aadressil asuv veebikoht
# apt-get install apache2 php5-ldap
LTB SSP rakenduse paigaldamine
Tundub, et LTB SSP rakendust jagatakse lisaks tavalisele .tar.gz ka .deb faili kujul. .tar.gz arhiiv sobib pakkida lahti veebijuurikasse kataloogi ltb, failide omanik:grupp peab erinema veebiserveri omadest.
LBT SSP rakenduse seadistamine
LBT SSP seadistused asuvad seadistusfailis conf/config.inc.php.
LDAP ühendus
Esmalt maksab seadistada vaid LDAP ühendus ja veenduda, et andmevahetus on võimalik, st saab kasutaja parooli edukalt muuta
# LDAP $ldap_url = "ldaps://ad-z1.sise.moraal.ee"; $ldap_binddn = "cn=ltb_pwdchange,ou=Teenuskontod,dc=sise,dc=moraal,dc=ee"; $ldap_bindpw = "parool"; $ldap_base = "dc=sise,dc=moraal,dc=ee"; $ldap_login_attribute = "mail"; $ldap_fullname_attribute = "cn"; $ldap_filter = "(&(objectClass=person)($ldap_login_attribute={login}))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))"; $ad_mode = true; ..
kus
- TODO
Lisaks tuleks parooli valikule seadistada piirangu, nt
$ad_options['force_unlock'] = true; $pwd_min_length = 8; $pwd_max_length = 40; $pwd_min_lower = 1; $pwd_min_upper = 1; $pwd_min_digit = 1;
kus
- TODO
ning lülitada välja vajadusel kõik muu peale toimiva parooli vahetamise
$use_questions = false; $use_tokens = false; $use_sms = false;
Maksab tähelepanelikult tutvuda, milliste LDAP sissekannetega filter tegeleb, nt
$ ldapsearch -x -H ldap://ad-z1.sise.moraal.ee -D "cn=ltb_pwdchange,ou=Teenuskontod,dc=sise,dc=moraal,dc=ee" \ -w parool -b "dc=sise,dc=moraal,dc=ee" \ "(&(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(objectClass=computer)))" | grep ^dn dn: CN=Priit Kask,OU=Kaasik,DC=sise,DC=moraal,DC=ee dn: CN=Mart Kask,OU=Kaasik,DC=sise,DC=moraal,DC=ee dn: CN=Tiit Kuusik,OU=Kuusik,DC=sise,DC=moraal,DC=ee ...
Kuna AD LDAP sissekandes endas puudub info Organization Unit kohta, siis ei saa seda filtris kasutada. Küll aga saab näiteks lisaks välja jätta parooli muutmise juures soovi korral mingitele tunnustele vastavaid kasutajaid, nt lisades filtrile
(!(givenName=Imre))
CAPTCHA kasutamine
captcha kasutamiseks sobib aadressil https://www.google.com/recaptcha/ registreerida kasutaja ning conf/config.inc.php failis kasutada sarnaseid ridu, küllap see on parem kui mitte midagi
.. $use_recaptcha = true; $recaptcha_publickey = "6LcgXhoTAAAAAKjjlVBoGOOM155juFJeSINxz0ff"; $recaptcha_privatekey = "6LcgXhoTAAAAAMJJE5vcY0Wr-_RRKf4hgtf-x87G";
Tarkvara kasutamine
Kasutajale paistab enne paroolivahetust selline pilt
Ja ega seal midagi väga erinevat ka peale paroolivahetust näha pole.