Using the LDAP Password Management Feature

This topic describes support and limitations for LDAP password management.

LDAP Password Management Feature Overview

The password management feature enables users who access an LDAP server to manage their passwords through the access management framework using the policies defined on the LDAP server. For example, if a user tries to sign in to the system with an LDAP password that is about to expire, the system notices the user through the interface, and then passes the user’s response back to the LDAP server without requiring the user to sign in to the LDAP server separately.

Users, administrators, and help desk administrators who work in environments where passwords have set expiration times may find the password management feature very helpful. If users are not informed that their passwords are about to expire, they can change them themselves through the system rather than call the help desk.

Once this feature is enabled, the system performs a series of queries to determine user account information, such as when the user’s password was last set, whether the account is expired, and so on. The access management framework does this by using its internal LDAP or Samba client. Many servers, such as Microsoft Active Directory, offer an Administrative Console to configure account and password options.

LDAP-based password management works with only three types of LDAP servers:

  • Microsoft Active Directory. For Active Directory, password policy attributes can be configured in the user entry container level or any organization level above the user container. If these attributes are configured at multiple levels, the level closest to the user node takes precedence. The password management feature is not supported on the Active Directory Global Catalog because password policy attributes are not fully populated in the Active Directory Global Catalog.
  • For Active Directory 2008, the access management framework supports the Fine Grained Password Policy (FGP) configured in the AD user container.

LDAP-based password management does not work on generic LDAP servers such as OpenLDAP.

The system relies on the back-end server to pinpoint the cause of error when a password change operation fails. However, although LDAP servers may report errors accurately to human operators, they do not always do so when communicating programmatically to systems. Therefore, reported errors might be generic or cryptic.

The system does not support customized password policies.

Enabling LDAP Password Management

To enable password management, you must first create an instance of the LDAP server. Next, you associate the LDAP server with the applicable realms. Finally, you select the enable password management feature at the realm level.

LDAP Password Management Support

The access management framework supports password management with the following LDAP directories:

  • Microsoft Active Directory/Windows NT
  • Generic LDAP directories, such as IBM Secure Directory and OpenLDAP

The below table describes supported password management functions, their corresponding function names in the individual LDAP directories, and any additional relevant details. These functions must be set through the LDAP server itself before the system can pass the corresponding messages, functions, and restrictions to end users.

The Active Directory attribute names shown are specific to the Domain Security Policy object. Similar attributes for the corresponding functions are used for the Active Directory 2008 Fine-Grained Password Policy. Refer to Microsoft documentation for details.

When authenticating against a generic LDAP server, such as IBM Secure Directory, the system supports only authentication and allowing users to change their passwords. Password management functions are not supported when the CHAP family protocols are used for authentication. All functions are available when the JUAC protocol is used for authentication.

Function

Active Directory

eDirectory

Generic

Authenticate user

unicodePwd

userPassword

userPassword

Allow user to change password if enabled

Server tells us in bind response (uses ntSecurityDescriptor)

If passwordAllowChange == TRUE

Yes

Log out user after password change

Yes

Yes

Yes

Force password change at next log in

If pwdLastSet == 0

If pwdMustChange == TRUE

-

Expired password notification

userAccountControl== 0x80000

Check date/time value

-

Password expiration notification (in X days/hours)

if pwdLastSet - now() < maxPwdAge - 14 days

(Read from domain attributes)

(The system displays warning if less than 14 days)

If now() - passwordExpirationTime< 14 days

(The system displays warning if less than 14 days)

-

Disallow authentication if "account disabled/locked

userAccountControl== 0x2 (Disabled)

accountExpires

userAccountControl == 0x10 (Locked)

lockoutTime

Bind ErrorCode: 53 "Account Expired"

Bind ErrorCode: 53 "Login Lockout"

-

Honor "password history"

Server tells us in bind response

Server tells us in bind response

-

Enforce "minimum password length"

If set, the system displays message telling user minPwdLength

If set, the system displays message telling user passwordMinimumLength

-

Disallow user from changing password too soon

 

If pwdLastSet - now() < minPwdAge, then we disallow

 

Server tells us in bind response

 

-

Honor "password complexity"

If pwdProperties == 0x1, then enabled. Complexity means the new password does not contain username, first or last name, and must contain characters from 3 of the following 4 categories: English uppercase, English lowercase, Digits, and Non-alphabetic characters (ex. !, $, %)

Server tells us in bind response

-

Note the following expected behavior:

  • The system displays a warning about password expiration only if the password is scheduled to expire in 14 days or less. The system displays the message during each sign-in attempt. The warning message contains the remaining number of days, hours, and minutes that the user has to change the password before it expires on the server. The default value is 14 days, but you can change it on the password configuration page of the admin console.

LDAP Password Management for Windows AD Versions

The access management framework supports password management with the following Windows servers:

  • Microsoft Active Directory 2008
  • Microsoft Active Directory 2003
  • Windows NT 4.0

Table describes supported password management functions. These functions are not supported for a layer 2 connection when CHAP, MS-CHAP, or PAP are used as authentication protocols.

Function

Active Directory

Active Directory 2003

Active Directory 2008 FGP

Windows NT

Authenticate user

Yes

Yes

Yes

Yes

Allow user to change password if licensed and if enabled

Yes

Yes

Yes

Yes

Log out user after password change

Yes

Yes

Yes

Yes

Force password change at next log in

Yes

Yes

Yes

Yes

Password expired notification

Yes

Yes

Yes

Yes

Account disabled

Yes

Yes

Yes

Yes

Account expired

Yes

Yes

Yes

Yes

Note the following expected behavior:

  • Changes on the Active Directory domain security policy can take 5 minutes or longer to propagate among Active Directory domain controllers. Additionally, this information does not propagate to the domain controller on which it was originally configured for the same time period. This issue is a limitation of Active Directory.
  • When changing passwords in Active Directory using LDAP, the system automatically switches to LDAPS, even if LDAPS is not the configured LDAP method. To support LDAPS on the Active Directory server, you must install a valid SSL certificate into the server’s personal certificate store. The certificate must be signed by a trusted CA, and the CN in the certificate’s Subject field must contain the exact hostname of the Active Directory server, (for example: adsrv1.company.com). To install the certificate, select the Certificates Snap-In in the Microsoft Management Console (MMC).
  • The Account Expires option in the User Account Properties tab only changes when the account expires, not when the password expires. Microsoft Active Directory calculates the password expiration using the Maximum Password Age and Password Last Set values retrieved from the User object and Fine-Grained Password Policy objects or the Domain Security Policy LDAP objects.
  • The system displays a warning about password expiration only if the password is scheduled to expire in 14 days or less. The system displays the message during each sign-in attempt. The warning message contains the remaining number of days, hours, and minutes that the user has to change the password before it expires on the server. The default value is 14 days, but you can change it on the password configuration page of the admin console.

Troubleshooting LDAP Password Management

When you troubleshoot, provide any pertinent system logs, server logs, configuration information, and a TCP trace from the system. If you are using LDAPS, switch to the “Unencrypted” LDAP option LDAP server configuration while taking the LDAP TCP traces.