LDAP ToolBox Self Service Password

Allikas: Imre kasutab arvutit

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

Ltb-ssp.gif

Ja ega seal midagi väga erinevat ka peale paroolivahetust näha pole.

Kasulikud lisamaterjalid