PHP Setup #
Before we can begin setting up Booked, ensure LDAP support for PHP has been installed and configured.
If connecting to LDAP over LDAPS, ensure that SSL support for PHP has been installed and configured.
Booked Configuration #
First, log into Booked as an administrator. Then open Application Configuration and choose Authentication-Ldap from the drop down at the top. We’ll go through each setting here.
After updating your LDAP settings, return to Application Configuration, choose config.php from the drop down at the top, and change your authentication plugin option to Ldap.
Booked uses Net_LDAP2 for LDAP connectivity, which has a much more detailed explanation of each setting.
host is your LDAP server’s name or IP. You can provide a comma separated list if you have fallback servers.
port is the port to connect to the LDAP sever over. The default is 389, but 636 is often used for ldaps connections.
version is version of LDAP being used. You’ll probably never have to change this from the default of 3.
starttls tells Booked to start tls when connecting to LDAP. If using SSL the port should likely be set to 636 and the host should be prefixed with ldaps://
binddn is the fully qualified DN to bind to LDAP as, if your LDAP server does not allow anonymous binding.
bindpw is the password for your binddn user.
basedn is the LDAP base name to use when authenticating users.
filter is the default search filter for users. This can often be left blank.
scope is the default search scope for users. This can often be left blank.
required.group is the comma separated list of LDAP groups that a user must be part of in order to gain access to Booked.
database.auth.when.ldap.user.not.found tells Booked to store the user’s password to be used for authentication in the event that LDAP is not accessible.
attribute.mapping is the list of name value pairs to use to map LDAP values to Booked. The left side of the equals sign is the name of the attribute in Booked and cannot change. The right side is the name of your LDAP attribute.
user.id.attribute is the name of the LDAP attribute to use to identify the user.
sync.groups tells Booked whether or not to synchronize group membership. It’s important to note that groups themselves will never be created or removed from Booked. For any group membership that you want to sync, you must create a group in Booked with the exact name as it appears in LDAP. For example, if the user is part of the students group in LDAP, there must be a students group in Booked.
prevent.clean.username if you require users to provide the domain name when logging in, this setting controls whether or not to strip that off when authenticating.