LDAP/AD Authentication#
Overview#
This feature was created to allow LDAP compliant security services such as Microsoft Active Directory to be the password control for the Self-Service users when logging in.Features#
This provides integration with LDAP servers such as Microsoft Active Directory for login authentication for Self-Service interfaces, to allow user to use their network login user ID and password to login to the application. At the same time the user’s personal data is protected from being viewed by others when the user is away from their PC, or in situations where multiple employees may be sharing one PC.While the majority of users are on the client’s network utilizing Active Directory, there are several departments on their own networks as well as other groups of users, such as retirees, who do not have Active Directory accounts on the client’s network. For users with Active Directory accounts, password management (issuing/resetting) needs to be performed through the client’s Help Desk. For users without Active Directory accounts, password management will be handled through the application’s existing password management functionality.
Users with Active Directory accounts will use their network login user ID and password for authenticating whether accessing the applications from their work PC (already logged into the client’s network) or when accessing the applications from off-site locations (from PC’s not already logged into the client’s network).
The Candidate Self Service will not use Active Directory validation.
In order to use Active directory, records must exist on the following tables;
- P2K_HR_IDENTITIES
- p2K_HR_PERSONALS
- P2K_HR_EMPLOYMENTS
- P2K_HR_ASSIGNMENTS
- P2K_HR_ASSIGNMENT_DETAILS
- P2K_RE_CANDIDATES - If a candidate code is not found, the process will attempt to insert a new candidate record automatically when a user attempts to login.
SSL over LDAP - LDAPS is now supported: The application can now authenticate users against servers using the LDAPS protocol.
Setup#
There are preferences on the IMST that must be setup in order for this to be activated in the Self-Service system.IMST - Preferences:
- SS LOGIN TYPE - Must be set to “ACCESS”
- LDAP AUTH ON - ‘Y’ or ‘N’ to enable or disable, respectively, LDAP authentication. Defaulted to ‘N’.
- LDAP ENCRYPTION – Hash algorithm used to encrypt passwords on LDAP server. Defaulted to ‘DIGEST-MD5’. This is currently the only supported value and doesn't need to be setup.
- LDAP FACTORY - Site Preference that can now be configured by the client.
- LDAP_UNAME_LCASE - Used to determine if user names must be converted to all lower case
IMLN - Setup Lexion X_LDAP_DOMAINS entries: If you only have one domain you just need to create one entry. If you have an LDAP forest or multiple forests you need to create an entry for each domain and the user selects the domain they are to be validated against. The Displayed field will be what is shown to the user and the Meaning field must contain the domain name (you cannot use an IP address). The saved value can be anything but cannot be duplicated within the Lexicon.
As an example, at HLC, our Active Directory hostname is ‘valasca.highlinecorp.com’ so we might set up the Lexicon with:
- Saved Value: 02
- Displayed: High Line Corp.
- Meaning: valasca.highlinecorp.com
The accessor information (access key & password) must be established for each Identity record(IEID). The password can be cleared out ONLY if the LDAP AUTH ON site preference is set to 'Y'.
To enable the feature - SSL over LDAP / LDAPS, open the IMLN screen, navigate to the 'X_LDAP_DOMAINS' record, and add the text ‘ldaps://’ to start of any server URL (Lexicon Value 'Meaning') that is configured to use LDAPS. For example, if the LDAP server at 'valasca.highlinecorp.com' is configured to use LDAPS, the Lexicon Value Meaning should be set to 'ldaps://valasca.highlinecorp.com'. If the LDAP server is not configured for SSL (i.e. just the ldap protocol), then adding a prefix to the URL is not necessary and not recommended: In this example 'valasca.highlinecorp.com' is sufficient.
Site preference LDAP_UNAME_LCASE can be used to indicate whether an username should be converted to lowercase before sending credentials to LDAP server for authentication. If this value is not added to Site Preferences, or value is 'N', then usernames will be passed to LDAP server, exactly as they are entered by the user. Default value for this preference is 'No'.
LOGIN Flow#
When the user selects the Self Service interface, the application will display the appropriate login page:- The user must enter the ‘Access Key’
- The Password field will be displayed empty and will be entered by the user.
- When the user clicks “Continue” the application will verify the Access Key against the Accessor records for the Identities table (IEID) and if it exists, then it will authenticate both the user name and password against Active Directory.
- If Active Directory authentication passes, continue with logging in of user into application.
- If Active Directory authentication fails, before displaying a failed login message, authenticate using standard Personality methods. IF the password is NULL in Personality the user is ONLY allowed to log in via the Active Directory authentication.
Forgotten Passwords#
For the Employee/Manager Self Service interface, clients have the ability to add header/footer pages to the Forgotten Password page so as to be able to indicate the steps the user should take when the user is a member of the client’s Active Directory. This is done in the IMMS for message “SS_CHG_PW_EN_10”.If the Access Key is entered and found to currently have a NULL password, a new password should not be generated and the user should be given a message back to indicate they are “externally authenticated” and need to contact their system administration.
Ex: Server is set to authenticate the user against external LDAP server. User sees this screen after clicking on ‘Forgot Password?’ link.
LDAP_AD_AUTHENTICATION_01.JPG
Firewall Configuration#
Since the LDAP authentication is performed by the WebLogic Server, it must be able to communicate to with the LDAP server through the standard ports. There are 2 ports used for LDAP communication: port 389 for LDAP; and 636 for LDAPS using SSL/TLS encryption.LDAP Trouble Shooting#
Since the LDAP authentication is handled by a limited number of Java classes, we're able to turn on tracing with the TraceModes.xml file. Adding the following lines, forcing a reload of the file from IMST and setting tracing to 'Finest' can help with trouble shooting:- <traceRule className="com.highlinecorp.schema.UserContext"/>
- <traceRule className="com.highlinecorp.view.common.legacy.WebUserContext"/>
- <traceRule className="com.highlinecorp.business.am.Accessors"/>
LDAPS presents additional difficulties with authentication. Since LDAPS connects to the remote serve via an SSL connection, it must first successfully complete the SSL handshake with the server. If the server is using a self-signed certificate, the certificate will need to be added to Java's 'cacerts' file. Without this, the SSL handshake with the server will fail every time.
If the server certificate is a domain wide, or wild card certificate, the SSL options within the managed server will need to be altered. The default host name verification handler does not support wild card certificates. Oracle provides an alternate handler that will need to be configured as outlined in the WebLogic Server documentation: Configuring the Wildcarded Host Name Verifier
Java provides additional options for tracing SSL authentication issues. Adding the following options to the Server Startup Arguments:
- -Djavax.net.debug=ssl
- -Dssl.debug=true
- -Dweblogic.StdoutDebugEnabled=true
- -Dweblogic.security.SSL.verbose=true