LDAP Integration

Three modules that: let users to authenticate against multiple LDAP or AD servers; use LDAP groups as Drupal roles; and provides read or read/write access to LDAP data from within Drupal.

Prerequisites
PHP must be compiled with LDAP support - ./configure --with-ldap in order to use the LDAP module. You will probably have to install openldap-devel in order to do that.

Bug Fix
Per this bug report on Drupal.org, you need to fix a couple of the LDAP module files to properly map LDAP groups to the users
In ldapauth.module and ldapgroups.module replace all:

user_save($user, $userinfo);

With:

$user = user_save($user, $userinfo);
menu_rebuild();

And in ldapgroups.module, replace (around line 244):

foreach ($user->ldap_drupal_roles as $role) {
_ldapgroups_deny_role($user, $role);
}

With:

foreach ($user->ldap_drupal_roles as $role) {
if (preg_match('/^[^=]*=([^,]*),.*$/', $role, $matches)) {
$role = $matches[1];
}
_ldapgroups_deny_role($user, $role);
}

Mapping only certain LDAP groups
Per the Advanced Configuration documentation of the ldap_integration module, all groups on the LDAP server are converted to Drupal roles when a user logs in. This might not be desirable if you only need a couple of the groups on your LDAP server mapped to your Drupal site.
Edit the modules/ldap_integration/ldapgroups.conf.php file and specify your groups and their role names:

$GLOBALS['ldap_group_role_mappings'] = array(
  // LDAP group => Drupal role
  'cn=users,ou=Group,dc=example,dc=com' => 'Users',
  'cn=IT,ou=Group,dc=example,dc=com' => 'SiteAdmins'
);

Add the specific groups that need to be recognized as Drupal roles and their role names. Note: Make sure that the last group-role mapping does not have a trailing comma ,

Uncomment the function ldapgroups_roles_filter. Note: Uncommenting this function will cause the groups to be filtered through this function. The result is that only the groups specified in the global variable $GLOBALS['ldap_group_role_mappings'] will be parsed, ignoring the rest.

OS X Open Directory
How to authenticate against an OS X Server's Open Directory database
LDAP Integration settings

  • Login procedure
    • BaseDN - cn=users,dc=domain,dc=com
    • UserName attribute - uid
    • mail attribute - mail

LDAP Groups settings

  • Groups exist as LDAP entries where a multivalued attribute contains the members' CNs
  • Nodes containing groups (one per line) -
    cn=groups,dc=chroniclejournal,dc=com</em>
    <li><em>Attribute holding group members</em> - memberUid
    </ul>
    To map the OD groups to Drupal groups, the format is <code>cn=groupname,cn=groups,dc=domain,dc=com

Recent Updates

  • 11 months 1 week ago
    1.27.2 update
  • 11 months 3 weeks ago
    Drupal 10/11 config
  • 11 months 3 weeks ago
  • PHP
    11 months 3 weeks ago
    PHP 8.3.11 and AlmaLinux
  • 11 months 3 weeks ago
    New version of Pound
Error | Production Monkeys

Error

The website encountered an unexpected error. Please try again later.