Author Topic: Global adress book ldap problems  (Read 5090 times)

Offline Pinni3

  • Newbie
  • *
  • Posts: 1
Global adress book ldap problems
« on: July 12, 2012, 06:35:24 AM »
Hey Guys

I want to configure properly Roundcube to get ldap users at global adress book. I cant get it to work. I get service unavailable with code 100

Here's my config, please help


$rcmail_config['ldap_public']['alias'] = array(
  'name'          => 'alias',
  // Replacement variables supported in host names:
  // %h - user's IMAP hostname
  // %n - http hostname ($_SERVER['SERVER_NAME'])
  // %d - domain (http hostname without the first part)
  // %z - IMAP domain (IMAP hostname without the first part)
  // For example %n = mail.domain.tld, %d = domain.tld
  'hosts'         => array('ldap_host_name_fqdn'),
  'port'          => 389,
  'use_tls'         => false,
  'ldap_version'  => 3,       // using LDAPv3
  'user_specific' => true,   // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login.
  // %fu - The full username provided, assumes the username is an email
  //       address, uses the username_domain value if not an email address.
  // %u  - The username prior to the '@'.
  // %d  - The domain name after the '@'.
  // %dc - The domain name hierarchal string e.g. "dc=test,dc=domain,dc=com"
  // %dn - DN found by ldap search when search_filter/search_base_dn are used
  'base_dn'       => 'ou=users,dc=domain,dc=name ',
  'bind_dn'       => 'domainshortname\username',
  'bind_pass'     => 'password',
  // It's possible to bind for an individual address book
  // The login name is used to search for the DN to bind with
  'search_base_dn' => 'ou=users,dc=domain,dc=name',
  'search_filter'  => '(objectClass=organizationalPerson)',   // e.g. '(&(objectClass=posixAccount)(uid=%u))'
  // DN and password to bind as before searching for bind DN, if anonymous search is not allowed
  'search_bind_dn' => 'domainshortname\username',
  'search_bind_pw' => 'password',
  // Default for %dn variable if search doesn't return DN value
  'search_dn_default' => '',
  // Optional authentication identifier to be used as SASL authorization proxy
  // bind_dn need to be empty
  'auth_cid'       => '',
  // SASL authentication method (for proxy auth), e.g. DIGEST-MD5
  'auth_method'    => '',
  // Indicates if the addressbook shall be hidden from the list.
  // With this option enabled you can still search/view contacts.
  'hidden'        => false,
  // Indicates if the addressbook shall not list contacts but only allows searching.
  'searchonly'    => false,
  // Indicates if we can write to the LDAP directory or not.
  // If writable is true then these fields need to be populated:
  // LDAP_Object_Classes, required_fields, LDAP_rdn
  'writable'       => false,
  // To create a new contact these are the object classes to specify
  // (or any other classes you wish to use).
  'LDAP_Object_Classes' => array('top', 'inetOrgPerson'),
  // The RDN field that is used for new entries, this field needs
  // to be one of the search_fields, the base of base_dn is appended
  // to the RDN to insert into the LDAP directory.
  'LDAP_rdn'       => 'mail',
  // The required fields needed to build a new contact as required by
  // the object classes (can include additional fields not required by the object classes).
  'required_fields' => array('cn', 'sn', 'mail'),
  'search_fields'   => array('mail', 'cn'),  // fields to search in
  // mapping of contact fields to directory attributes
  'fieldmap' => array(
    // Roundcube  => LDAP
    'name'        => 'cn',
    'surname'     => 'sn',
    'firstname'   => 'givenName',
    'email'       => 'mail',
    'phone:home'  => 'homePhone',
    'phone:work'  => 'telephoneNumber',
    'phone:mobile' => 'mobile',
    'street'      => 'street',
    'zipcode'     => 'postalCode',
    'locality'    => 'l',
    'country'     => 'c',
    'organization' => 'o',
  ),
  'sort'          => 'cn',    // The field to sort the listing by.
  'scope'         => 'sub',   // search mode: sub|base|list
  'filter'        => '(objectClass=inetOrgPerson)',      // used for basic listing (if not empty) and will be &'d with search queries. example: status=act
  'fuzzy_search'  => false,    // server allows wildcard search
  'vlv'           => false,   // Enable Virtual List View to more efficiently fetch paginated data (if server supports it)
  'numsub_filter' => '(objectClass=organizationalUnit)',   // with VLV, we also use numSubOrdinates to query the total number of records. Set this filter to get all numSubOrdinates attributes for counting
  'sizelimit'     => '0',     // Enables you to limit the count of entries fetched. Setting this to 0 means no limit.
  'timelimit'     => '0',     // Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit.
  'referrals'     => false,  // Sets the LDAP_OPT_REFERRALS option. Mostly used in multi-domain Active Directory setups

  // definition for contact groups (uncomment if no groups are supported)
  // for the groups base_dn, the user replacements %fu, %u, $d and %dc work as for base_dn (see above)
  // if the groups base_dn is empty, the contact base_dn is used for the groups as well
  // -> in this case, assure that groups and contacts are separated due to the concernig filters!
 /* 'groups'        => array(
    'base_dn'     => '',
    'scope'       => 'sub',   // search mode: sub|base|list
    'filter'      => '(objectClass=groupOfNames)',
    'object_classes' => array("top", "groupOfNames"),
    'member_attr'  => 'member',   // name of the member attribute, e.g. uniqueMember
    'name_attr'    => 'cn',       // attribute to be used as group name
  ),*/
);

Offline leegethas

  • Newbie
  • *
  • Posts: 3
Re: Global adress book ldap problems
« Reply #1 on: August 13, 2012, 06:44:34 AM »
I have the same problem. It used to work fine, but since the update to 0.8 I noticed this error.

Anyone knows what might be the problem?

Offline alec

  • Hero Member
  • *****
  • Posts: 1,365
Re: Global adress book ldap problems
« Reply #2 on: August 13, 2012, 08:01:38 AM »
  // %fu - The full username provided, assumes the username is an email
  //       address, uses the username_domain value if not an email address.
  // %u  - The username prior to the '@'.
  // %d  - The domain name after the '@'.
  // %dc - The domain name hierarchal string e.g. "dc=test,dc=domain,dc=com"
  // %dn - DN found by ldap search when search_filter/search_base_dn are used
  'base_dn'       => 'ou=users,dc=domain,dc=name ',
  'bind_dn'       => 'domainshortname\username',
  'bind_pass'     => 'password',
  // It's possible to bind for an individual address book
  // The login name is used to search for the DN to bind with
  'search_base_dn' => 'ou=users,dc=domain,dc=name',
  'search_filter'  => '(objectClass=organizationalPerson)',   // e.g. '(&(objectClass=posixAccount)(uid=%u))'
  // DN and password to bind as before searching for bind DN, if anonymous search is not allowed
  'search_bind_dn' => 'domainshortname\username',
  'search_bind_pw' => 'password',

*bind_dn values are wrong. They must be in form of LDAP DN string. Also search_filter is wrong, there should be some part which will search for specified user (see example in comment).