Changes between Version 4 and Version 5 of campuswifiandeduroam2023Agenda/pwdc


Ignore:
Timestamp:
Jul 22, 2024, 6:10:08 PM (2 months ago)
Author:
tuwan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • campuswifiandeduroam2023Agenda/pwdc

    v4 v5  
    196196$who_change_password = "user";
    197197}}}
     198
     199'''Search parameters'''
     200
     201{{{$ldap_base = "dc=learn,dc=ac,dc=lk";}}}
     202
     203The filter can be set in $ldap_filter
     204
     205{{{
     206$ldap_filter = "(&(objectClass=person)(uid={login}))";
     207}}}
     208
     209'''Extensions'''
     210
     211You can use LDAP password modify extended operation wit
     212
     213{{{
     214$ldap_use_exop_passwd = true;
     215}}}
     216
     217You can also enable LDAP password policy control with
     218
     219{{{
     220$ldap_use_ppolicy_control = true;
     221}}}
     222
     223Force unlock: will unlock a locked account when password is changed
     224
     225{{{
     226$ad_options['force_unlock'] = true;
     227}}}
     228
     229Force user to change password at next login:
     230{{{
     231$ad_options['force_pwd_change'] = true;
     232}}}
     233
     234Allow user to change password if password is expired (this will force the password to be changed as manager):
     235
     236{{{
     237$ad_options['change_expired_password'] = true;
     238}}}
     239
     240//'''Password Policy'''//
     241
     242You can use these schemes to hash the password before sending it to LDAP directory:
     243- SHA, SHA256, SHA384, SHA512
     244- SSHA, SSHA256, SSHA384, SSHA512
     245- MD5
     246- SMD5
     247- CRYPT
     248- ARGON2
     249- clear
     250- auto
     251
     252Set one of them in $hash
     253
     254{{{
     255$hash = "clear";
     256}}}
     257
     258You can configure the crypt salt prefix to choose the algorithm
     259Optional:
     260[http://php.net/manual/en/function.crypt.php crypt document]
     261
     262{{{
     263$hash_options['crypt_salt_prefix'] = "$6$";
     264}}}
     265
     266'''Size'''
     267
     268Set minimal and maximal length in $pwd_min_length and $pwd_max_length:
     269
     270{{{
     271$pwd_min_length = 4;
     272$pwd_max_length = 8;
     273}}}
     274
     275//{{{Set 0 in $pwd_max_length to disable maximal length checking.}}}//
     276
     277'''Characters'''
     278You can set the minimal number of lower, upper, digit and special characters:
     279
     280{{{
     281$pwd_min_lower = 3;
     282$pwd_min_upper = 1;
     283$pwd_min_digit = 1;
     284$pwd_min_special = 1;
     285}}}
     286
     287Special characters are defined with a regular expression, by default:
     288{{{
     289$pwd_special_chars = "^a-zA-Z0-9";
     290}}}
     291
     292This means special characters are all characters except alphabetical letters and digits.
     293
     294You can check that these special characters are not at beginning or end of the password:
     295
     296{{{
     297$pwd_no_special_at_ends = true;
     298}}}
     299
     300You can also disallow characters from being in password, with $pwd_forbidden_chars:
     301
     302{{{
     303$pwd_forbidden_chars = "@%";
     304}}}
     305
     306//This means that @ and % could not be present in a password.//
     307
     308You can define how many different class of characters (lower, upper, digit, special) are needed in the password:
     309{{{
     310$pwd_complexity = 2;
     311}}}
     312
     313'''Pwned Passwords'''
     314
     315Allows to check if the password was already compromised
     316[https://haveibeenpwned.com/]
     317{{{
     318$use_pwnedpasswords = true;
     319}}}
     320
     321'''Re use'''
     322You can prevent a user from using his old password as a new password if this check is not done by the directory:
     323{{{
     324$pwd_no_reuse = true;
     325}}}
     326
     327You may also want to check for partial password reuses, ensuring the new password includes at least N distinct new characters:
     328
     329{{{
     330$pwd_diff_last_min_chars = 3;
     331}}}
     332
     333'''Forbidden words'''
     334
     335Give a list of forbidden words that the password should not contain
     336{{{
     337$pwd_forbidden_words = array("azerty", "qwerty", "password");
     338}}}
     339
     340'''Forbidden LDAP fields'''
     341
     342Give a list of LDAP fields which values should not be present in the password:
     343
     344{{{
     345$pwd_forbidden_ldap_fields = array('cn', 'givenName', 'sn', 'mail');
     346}}}
     347