Sun ONE Application Server LDAP integration reference
This topic provides reference information specific to Sun ONE Application Server LDAP integrations. When you're installing the Okta LDAP Agent, you need this information to integrate your Sun ONE Application Server directory with Okta. See Install the Okta LDAP Agent.
Recommended version
Sun ONE Application Server 5.2
Known issues
- Users must provide their new password twice to access the Okta End-User Dashboard after requesting a self-service password reset or after an admin resets their password.
- Users using a temporary password aren't prompted to create a new password and can continue to use the temporary password for authentication.
- Expired user passwords cannot be updated.
- A locked user account can't be unlocked when the account is locked on the LDAP server.
- When the provisioning settings indicate Do nothing when users are deactivated, users remain active in Okta. When a single source provides user profile attributes, deactivated users are disconnected from the source and Okta becomes the source for user profile attributes.
Integration configuration
During the initial agent install and configuration documented in Install the Okta LDAP Agent, these are the attributes for the Sun ONE Application Server:
- LDAP version: Sun ONE Application Server. If you select another option, the virtual list view (VLV) request control isn't activated. An LDAP import can fail when the data set is too large. The Sun ONE Application Server option isn't available unless it's activated by Okta support.
- Unique Identifier Attribute: nsuniqueid
- DN Attribute: entrydn
- User Object Class: inetorgperson
- User Object Filter: (objectclass=inetorgperson)
- *Account Disabled Attribute: nsaccountlock
- *Account Disabled Value: TRUE
- *Account Enabled Value: FALSE
- Password Attribute: userpassword
- Group Object Class: groupofuniquenames
- Group Object Filter: (objectclass=groupofuniquenames)
- Member Attribute: uniquemember
Schema read
There are no special considerations for Sun ONE Application Server LDAP integrations.
To add attributes from AUX classes, add the auxiliary class as an Auxiliary Object Class to the directory provisioning configuration. For example, the dc
attribute is added to the Okta schema attributes when the Auxiliary Object Class is dcObject
.
Password change
Users can change their password by selecting Settings on the Okta End-User Dashboard.
Okta parses password update operations that fail, and the error message appears on the Delegated Authentication page. For example, when a new password already exists, the error message Password change failed due to following reason : password in history appears.
Password reset
Password reset is triggered by an administrator or the User Forgot Password flow.
Password reset can fail if the new password doesn't meet the password policy criteria.
Users can't update expired passwords. Admins must reset expired passwords.
Password validation
Use the pwdPolicy object class to implement Sun ONE Application Server specific password policies.
You can configure settings such as password length and expiration on your LDAP instance.
If a user incorrectly enters an Okta password four times or an LDAP password five times, their LDAP user account status is Locked. However, the status for the user account displays as Active on the Okta Admin Console. When an account is in this state, an administrator must unlock the user account. See Unlock an individual user account.
Import
There are no special considerations for Sun ONE Application Server integrations.
JIT provisioning
There are no special considerations for Sun ONE Application Server Just-In-Time (JIT) provisioning. For user identification (UID), use an email format to match the default setting for an Okta username. Don't use an external identity provider (IdP) to trigger sign-in.
To make sure that JIT provisioning is successful the first time:
- The value of the configured naming attribute (such as UID) must not exist in Okta.
- The value of the configured naming attribute (such as UID) must be unique in all JIT-enabled directories.
- The required attributes must be present. The Okta defaults are email, givenName, sn, and uid.
- The password must be correct.
- The Account Disabled Attribute must be set to false on the LDAP server.
When JIT provisioning completes successfully, all user attributes specified on the LDAP settings page and in the Profile Editor are imported. To select other mandatory attributes, use the Profile Editor.
Membership import
During import, if the default Sun ONE Application Server settings are used, user groups with the objectClass group are imported and added to the user specified in the member group attribute.
During import, if the membership attribute is set to seeAlso, users are assigned to the groups added to the seeAlso user attribute.
Provisioning
To allow passwords to be set when users are created or assigned, disable DelAuth, enable LDAP_PUSH_PASSWORD_UPDATES, and enable password sync on your LDAP instance. With these settings, the LDAP agent sends the PASSWORD_UPDATE action when the user logs in for the first time or when they're assigned. If you don't set these settings, the password isn't transferred to your LDAP instance.
To create and assign passwords when creating user profiles:
- Contact Okta customer support to enable LDAP push password updates.
- Disable delegated authentication:
- In the Admin Console, go to .
- Click Edit in the Delegated Authentication pane.
- Clear the Enable delegated authentication to LDAP checkbox.
- Click Save.
- Accept the default setting to reset all LDAP user passwords and click Disable LDAP Authentication.
- In the Admin Console, go to .
- Click Edit, select Enable next to Sync Password, and click Save.
When Sync Password is enabled, the LDAP agent sends the action PASSWORD_UPDATE when the user signs in for the first time.
To assign existing Okta users to LDAP:
- In the Admin Console, go to .
- Click Edit, select Enable next to Create Users, and click Save.
- Click .
- Select the Okta group to which you want to assign users.
- Click Manage Directories.
- Select an LDAP instance in the left pane and click Next.
- Enter the full distinguished name (DN) for the new user LDAP container in the Provisioning Destination DN field.
- Click Confirm Changes.
Troubleshooting
If LDAP directory authentication fails, the agent logs display messages similar to the following to assist with diagnosis and resolution:
Agent: Success
POST initiated with result status=SUCCESS, actionType=USER_AUTH_AND_UPDATE, actionId=ADSugxTWZNrShgm5I0g3, diagnostic message=, error code=, matched dn=, message=SUCCESS, result code=, vendor=SUN_ONE
Agent: Delauth failure
POST initiated with result status=FAILURE, actionType=USER_AUTH_AND_UPDATE, actionId=ADSugzVSA6oKwrKPq0g3, diagnostic message=, error code=49, matched dn=cn=Test@test.com,ou=usersLynxy2,dc=oktalab,dc=local, message=LDAPException(resultCode=49 (invalid credentials), errorMessage='invalid credentials'), result code=invalid credentials, vendor=SUN_ONE
Agent: No user
POST initiated with result status=FAILURE, actionType=USER_AUTH_AND_UPDATE, actionId=ADSuh1FpTTEenrJ620g3, diagnostic message=, error code=, matched dn=, message=User not found while executing query: (&(objectclass=inetorgperson)(uid=Test@test.com)), result code=, vendor=SUN_ONE
Agent: Password expired
POST initiated with result status=FAILURE, actionType=USER_AUTH_AND_UPDATE, actionId=ADSuh9BcFFLxYM7wg0g3, diagnostic message=password expired!, error code=49, matched dn=cn=test@test.com,ou=userstest,dc=oktalab,dc=local, message=LDAPException(resultCode=49 (invalid credentials), errorMessage='password expired!', diagnosticMessage='password expired!', responseControls={PasswordExpiredControl(isCritical=false)}), result code=PASSWORD_EXPIRED, vendor=SUN_ONE
Agent: User locked or disabled
POST initiated with result status=FAILURE, actionType=USER_AUTH_AND_UPDATE, actionId=ADSuh3qBZ7EjPu40H0g3, diagnostic message=Account inactivated. Contact system administrator., error code=53, matched dn=cn=test@test.com,ou=userstest,dc=oktalab,dc=local, message=LDAPException(resultCode=53 (unwilling to perform), errorMessage='Account inactivated. Contact system administrator.', diagnosticMessage='Account inactivated. Contact system administrator.'), result code=unwilling to perform, vendor=SUN_ONE