| 198 | |
| 199 | '''Search parameters''' |
| 200 | |
| 201 | {{{$ldap_base = "dc=learn,dc=ac,dc=lk";}}} |
| 202 | |
| 203 | The filter can be set in $ldap_filter |
| 204 | |
| 205 | {{{ |
| 206 | $ldap_filter = "(&(objectClass=person)(uid={login}))"; |
| 207 | }}} |
| 208 | |
| 209 | '''Extensions''' |
| 210 | |
| 211 | You can use LDAP password modify extended operation wit |
| 212 | |
| 213 | {{{ |
| 214 | $ldap_use_exop_passwd = true; |
| 215 | }}} |
| 216 | |
| 217 | You can also enable LDAP password policy control with |
| 218 | |
| 219 | {{{ |
| 220 | $ldap_use_ppolicy_control = true; |
| 221 | }}} |
| 222 | |
| 223 | Force unlock: will unlock a locked account when password is changed |
| 224 | |
| 225 | {{{ |
| 226 | $ad_options['force_unlock'] = true; |
| 227 | }}} |
| 228 | |
| 229 | Force user to change password at next login: |
| 230 | {{{ |
| 231 | $ad_options['force_pwd_change'] = true; |
| 232 | }}} |
| 233 | |
| 234 | Allow 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 | |
| 242 | You 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 | |
| 252 | Set one of them in $hash |
| 253 | |
| 254 | {{{ |
| 255 | $hash = "clear"; |
| 256 | }}} |
| 257 | |
| 258 | You can configure the crypt salt prefix to choose the algorithm |
| 259 | Optional: |
| 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 | |
| 268 | Set 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''' |
| 278 | You 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 | |
| 287 | Special characters are defined with a regular expression, by default: |
| 288 | {{{ |
| 289 | $pwd_special_chars = "^a-zA-Z0-9"; |
| 290 | }}} |
| 291 | |
| 292 | This means special characters are all characters except alphabetical letters and digits. |
| 293 | |
| 294 | You 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 | |
| 300 | You 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 | |
| 308 | You 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 | |
| 315 | Allows to check if the password was already compromised |
| 316 | [https://haveibeenpwned.com/] |
| 317 | {{{ |
| 318 | $use_pwnedpasswords = true; |
| 319 | }}} |
| 320 | |
| 321 | '''Re use''' |
| 322 | You 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 | |
| 327 | You 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 | |
| 335 | Give 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 | |
| 342 | Give 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 | |