OpenLDAP integration reference

This topic provides reference information specific to OpenLDAP Lightweight Directory Access Protocol (LDAP) integrations. When you're installing the Okta LDAP Agent, you need this information to integrate your OpenLDAP directory with Okta. See Install the Okta LDAP Agent

Recommended version

OpenLDAP 2.4.44-22.amzn2

Known issues

  • Users using a temporary password aren't prompted to create a new password.
  • Users attempting to sign in to the Okta End-User Dashboard with an expired password receive the error message Unable to sign in instead of Password expired.
  • Users requesting a password reset and who are required to change their password after it's reset by an admin, must provide their new password twice to access the Okta End-User Dashboard.

  • 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 OpenLDAP integrations:

  • Unique identifier Attribute: entryuuid
  • DN Attribute: entrydn
  • User Object Class: inetorgperson
  • User Object Filter: (objectclass=inetorgperson)
  • *Account Disabled Attribute: pwdlockout
  • *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 OpenLDAP integrations.

To add attributes from AUX classes, add the auxiliary class as an Auxiliary Object Class to the directory provisioning configuration.

Password change

Users trigger a password change by selecting Settings on the Okta end user dashboard.

To allow users to change or reset their password, click SecurityDelegated Authentication, select the LDAP tab, and then select Users can change their LDAP passwordsinOkta.

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 much reset passwords.

Password validation

Use the pwdPolicy object class and pwdPolicySubentry attribute to implement OpenLDAP specific password policies.

Import

There are no special considerations for OpenLDAP integrations.

JIT provisioning

There are no special considerations for OpenLDAP 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 following conditions must be met:

  • 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 more mandatory attributes, use the Profile Editor.

Membership import

User profiles with OpenLDAP settings are added to groups with the object class groupofuniquenames and assigned the uniquemember 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, complete the following steps:

  1. Contact Okta customer support to enable LDAP pushes for password updates.
  2. Disable delegated authentication:
    1. In the Admin Console, go to SecurityDelegated AuthenticationLDAP.
    2. Click Edit in the Delegated Authentication pane.
    3. Clear the Enable delegated authentication to LDAP checkbox.
    4. Click Save.
    5. Accept the default setting to reset all LDAP user passwords and click Disable LDAP Authentication.
  3. In the Admin Console, go to DirectoryDirectory IntegrationsLDAPProvisioningTo App.
  4. Click Edit, select Enable next to Sync Password, and click Save.
  5. 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, complete the following steps:

  1. In the Admin Console, go to DirectoryDirectory IntegrationsLDAPProvisioningTo App.
  2. Click Edit, select Enable next to Create Users, and click Save.
  3. Click DirectoryGroups.
  4. Select the Okta group to which you want to assign users.
  5. Click Manage Directories.
  6. Select an LDAP instance in the left pane and click Next.
  7. Enter the full distinguished name (DN) for the new user LDAP container in the Provisioning Destination DN field.
  8. 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

scanResults are sent with user and group information.

POST initiated with result status=SUCCESS, actionType=USER_AUTH_AND_UPDATE, actionId=ADStflgt5KS4Gy17k0g3, diagnostic message=, error code=, matched dn=, message=SUCCESS, result code=, vendor=OPEN_LDAP

Agent: DelAuth failure

POST initiated with result status=FAILURE, actionType=USER_AUTH_AND_UPDATE, actionId=ADStftCWoSunnemFU0g3, diagnostic message=, error code=49, matched dn=cn=PasswordPolicyUser,ou=LynxyUsers,dc=okta-openldap, dc=com, message=LDAPException(resultCode=49 (invalid credentials), errorMessage='invalid credentials'), result code=invalid credentials, vendor=OPEN_LDAP

Agent: No user

POST initiated with result status=FAILURE, actionType=USER_AUTH_AND_UPDATE, actionId=ADStfjpuawUSY1Gge0g3, diagnostic message=, error code=, matched dn=, message=User not found while executing query: (&(objectclass=inetorgperson)(uid=PasswordPolicyer@openldap.com)), result code=, vendor=OPEN_LDAP

Agent: Password Expired

POST initiated with result status=FAILURE, actionType=USER_AUTH_AND_UPDATE, actionId=ADStfhvei0D6IaFJO0g3, diagnostic message=, error code=49, matched dn=cn=PasswordPolicyUser, ou=LynxyUsers,dc=okta-openldap,dc=com, message=LDAPException(resultCode=49 (invalid credentials), errorMessage='invalid credentials'), result code=invalid credentials, vendor=OPEN_LDAP

Agent: Locked Out/Disabled

pwdLockout set as TRUE for user pwdPolicy

POST initiated with result status=FAILURE, actionType=USER_AUTH_AND_UPDATE, actionId=ADSticrFpY0IyooMU0g3, diagnostic message=, error code=49, matched dn=cn=PasswordPolicyUser,ou=LynxyUsers,dc=okta-openldap,dc=com, message=LDAPException(resultCode=49 (invalid credentials), errorMessage='invalid credentials'), result code=invalid credentials, vendor=OPEN_LDAP