configure OpenLDAP

Hello,

I try to switch user management to OpenLDAP but i stuck add the kopano schema.

Debian stretch

OpenLDAP: slapd  (May 23 2018 04:25:19) $
	Debian OpenLDAP Maintainers <pkg-openldap-devel@lists.alioth.debian.org>

zcat /usr/share/doc/kopano/kopano.ldif.gz | ldapadd -H ldapi:/// -Y EXTERNAL
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=schema"
ldap_add: Invalid syntax (21)
	additional info: attributeTypes: value #0 invalid per syntax

Greets
Thomas

Hi,
is your LDAP configured by slapd.conf or by olc?

Hi,

no slapd.conf. I think OLC is the default in debian.

Hmm, I managed to get Kopano work with openldap on Debian, but I did nothing uncommon. Which are the versions you use?

Hi,

Debian 4.9.110-3+deb9u4
kopano-server 8.6.81.435-0+75.1
slapd 2.4.44+dfsg-5+deb9u2
ldap-utils 2.4.44+dfsg-5+deb9u2

I followed this instruction https://kb.kopano.io/display/WIKI/Install%2Band%2Boptimize%2BOpenLDAP%2Bfor%2Buse%2Bwith%2BKopano%2BGroupware%2BCore

There are differences in the ldif files between version 8.6.80 and 8.6.81: https://ibb.co/jqXqeK
Maybe give the 8.6.80-ldif a try, since with this one it worked for me.

changed

dn: cn=kopano,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: kopano

but no success.

Hi,

it seems i have to copy first kopano.ldif and kopano.schema in the folder /etc/ldap/schema/

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/kopano.ldif

Maybe the docs are wrong. And it seems that the canges:
dn: cn=kopano,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: kopano

are nessecary to

Hi,

deinstalled slapd ldap-utils
reinstalled slapd ldap-utils

now the same problem i can’t undersand it

The differences are not only in the beginning of the file. In the 8.6.81-Version for example there are “attributeType” and in 8.6.80-Version “olcAttributeType”. Here ist the full 8.6.80-LDIF:

################################################################################
#
dn: cn=kopano,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: kopano
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.1.1
  NAME 'kopanoQuotaOverride'
  DESC 'KOPANO: Override child quota'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.1.2
  NAME 'kopanoQuotaWarn'
  DESC 'KOPANO: Warning quota size in MB'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.1.3
  NAME 'kopanoQuotaSoft'
  DESC 'KOPANO: Soft quota size in MB'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.1.4
  NAME 'kopanoQuotaHard'
  DESC 'KOPANO: Hard quota size in MB'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.1.5
  NAME 'kopanoUserDefaultQuotaOverride'
  DESC 'KOPANO: Override User default quota for children'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.1.6
  NAME 'kopanoUserDefaultQuotaWarn'
  DESC 'KOPANO: User default warning quota size in MB'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.1.7
  NAME 'kopanoUserDefaultQuotaSoft'
  DESC 'KOPANO: User default soft quota size in MB'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.1.8
  NAME 'kopanoUserDefaultQuotaHard'
  DESC 'KOPANO: User default hard quota size in MB'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.2.1
  NAME 'kopanoAdmin'
  DESC 'KOPANO: Administrator of kopano'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.2.2
  NAME 'kopanoSharedStoreOnly'
  DESC 'KOPANO: is store a shared store'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.2.3
  NAME 'kopanoAccount'
  DESC 'KOPANO: entry is a part of kopano'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.2.4
  NAME 'kopanoSendAsPrivilege'
  DESC 'KOPANO: Users may directly send email as this user'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.2.5
  NAME 'kopanoMrAccept'
  DESC 'KOPANO: user should auto-accept meeting requests'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.2.6
  NAME 'kopanoMrDeclineConflict'
  DESC 'KOPANO: user should automatically decline conflicting meeting requests'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.2.7
  NAME 'kopanoMrDeclineRecurring'
  DESC 'KOPANO: user should automatically decline recurring meeting requests'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.2.8
  NAME 'kopanoId'
  DESC 'KOPANO: Generic unique ID'
  EQUALITY octetStringMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.2.9
  NAME 'kopanoResourceType'
  DESC 'KOPANO: for shared stores, resource is type Room or Equipment'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.2.10
  NAME 'kopanoResourceCapacity'
  DESC 'KOPANO: number of rooms or equipment available'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.2.11
  NAME 'kopanoHidden'
  DESC 'KOPANO: This object should be hidden from address book'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.2.13
  NAME 'kopanoEnabledFeatures'
  DESC 'KOPANO: This user has these features explicitly enabled'
  EQUALITY caseIgnoreMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.44
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.2.14
  NAME 'kopanoDisabledFeatures'
  DESC 'KOPANO: This user has these features explicitly disabled'
  EQUALITY caseIgnoreMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.44
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.3.1
  NAME 'kopanoAliases'
  DESC 'KOPANO: All other email addresses for this user'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.4.1
  NAME 'kopanoUserServer'
  DESC 'KOPANO: Home server for the user'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.6.1
  NAME 'kopanoUserArchiveServers'
  DESC 'KOPANO: List of server names that contain an archive store for the user'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.1.6.2
  NAME 'kopanoUserArchiveCouplings'
  DESC 'KOPANO: List of username:foldername pairs that specify many-to-one archive locations'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.2.2.1
  NAME 'kopanoSecurityGroup'
  DESC 'KOPANO: group has security possibilities'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.3.2.4
  NAME 'kopanoViewPrivilege'
  DESC 'KOPANO: Companies with view privileges over selected company'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.3.2.5
  NAME 'kopanoAdminPrivilege'
  DESC 'KOPANO: Users from different companies which are administrator over selected company'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.3.2.6
  NAME 'kopanoSystemAdmin'
  DESC 'KOPANO: The user who is the system administrator for this company'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.3.1.5
  NAME 'kopanoQuotaUserWarningRecipients'
  DESC 'KOPANO: Users who will recieve a notification email when a user exceeds his quota'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.3.1.6
  NAME 'kopanoQuotaCompanyWarningRecipients'
  DESC 'KOPANO: Users who will recieve a notification email when a company exceeds its quota'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.3.4.1
  NAME 'kopanoCompanyServer'
  DESC 'KOPANO: Home server for the public folders for a company'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.4.4.1
  NAME 'kopanoHttpPort'
  DESC 'KOPANO: Port for the http connection'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.4.4.2
  NAME 'kopanoSslPort'
  DESC 'KOPANO: Port for the ssl connection'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.4.4.3
  NAME 'kopanoFilePath'
  DESC 'KOPANO: The Unix socket or named pipe to the server'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.4.4.4
  NAME 'kopanoContainsPublic'
  DESC 'KOPANO: This server contains the public store'
  EQUALITY integerMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.4.4.6
  NAME 'kopanoProxyURL'
  DESC 'KOPANO: Full proxy URL for this server'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.5.5.1
  NAME 'kopanoFilter'
  DESC 'KOPANO: LDAP Filter to apply'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  SINGLE-VALUE
  )
#
################################################################################
#
olcAttributeTypes: (
  1.3.6.1.4.1.47732.1.5.5.2
  NAME 'kopanoBase'
  DESC 'KOPANO: LDAP Search base to apply'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  SINGLE-VALUE
  )
#
################################################################################
#
olcObjectClasses: (
  1.3.6.1.4.1.47732.1.1.0.0
  NAME 'kopano-user'
  DESC 'KOPANO: an user of Kopano'
  SUP top
  AUXILIARY
  MUST ( cn )
  MAY ( kopanoQuotaOverride $ kopanoQuotaWarn $ kopanoQuotaSoft $ kopanoSendAsPrivilege $  kopanoQuotaHard $ kopanoAdmin $ kopanoSharedStoreOnly $ kopanoResourceType $  kopanoResourceCapacity $ kopanoAccount $ kopanoHidden $ kopanoAliases $  kopanoUserServer $ kopanoEnabledFeatures $ kopanoDisabledFeatures $  kopanoUserArchiveServers $ kopanoUserArchiveCouplings $  uidNumber )
  )
#
################################################################################
#
olcObjectClasses: (
  1.3.6.1.4.1.47732.1.6.0.0
  NAME 'kopano-contact'
  DESC 'KOPANO: a contact of Kopano'
  SUP top
  AUXILIARY
  MUST ( cn $ uidNumber )
  MAY ( kopanoSendAsPrivilege $ kopanoHidden $ kopanoAliases $ kopanoAccount )
  )
#
################################################################################
#
olcObjectClasses: (
  1.3.6.1.4.1.47732.1.2.0.0
  NAME 'kopano-group'
  DESC 'KOPANO: a group of Kopano'
  SUP top
  AUXILIARY
  MUST ( cn )
  MAY ( kopanoAccount $ kopanoHidden $ mail $ kopanoAliases $ kopanoSecurityGroup $ kopanoSendAsPrivilege $  gidNumber )
  )
#
################################################################################
#
olcObjectClasses: (
  1.3.6.1.4.1.47732.1.3.0.0
  NAME 'kopano-company'
  DESC 'KOPANO: a company of Kopano'
  SUP top
  AUXILIARY
  MUST ( ou )
  MAY ( kopanoAccount $ kopanoHidden $  kopanoViewPrivilege $ kopanoAdminPrivilege $ kopanoSystemAdmin $  kopanoQuotaOverride $ kopanoQuotaWarn $  kopanoUserDefaultQuotaOverride $ kopanoUserDefaultQuotaWarn $ kopanoUserDefaultQuotaSoft $ kopanoUserDefaultQuotaHard $  kopanoQuotaUserWarningRecipients $ kopanoQuotaCompanyWarningRecipients $  kopanoCompanyServer )
  )
#
################################################################################
#
olcObjectClasses: (
  1.3.6.1.4.1.47732.1.4.0.0
  NAME 'kopano-server'
  DESC 'KOPANO: a Kopano server'
  SUP top
  AUXILIARY
  MUST ( cn )
  MAY ( kopanoAccount $ kopanoHidden $ kopanoHttpPort $ kopanoSslPort $ kopanoFilePath $ kopanoContainsPublic $ kopanoProxyURL )
  )
#
################################################################################
#
olcObjectClasses: (
  1.3.6.1.4.1.47732.1.5.0.0
  NAME 'kopano-addresslist'
  DESC 'KOPANO: a Kopano Addresslist'
  SUP top
  STRUCTURAL
  MUST ( cn )
  MAY ( kopanoAccount $ kopanoHidden $ kopanoFilter $ kopanoBase )
  )
#
################################################################################
#
olcObjectClasses: (
  1.3.6.1.4.1.47732.1.7.0.0
  NAME 'kopano-dynamicgroup'
  DESC 'KOPANO: a Kopano dynamic group'
  SUP top
  STRUCTURAL
  MUST ( cn )
  MAY ( kopanoAccount $ kopanoHidden $ mail $ kopanoAliases $ kopanoFilter $ kopanoBase )
  )
#
################################################################################
#

Hi,

this ldif works :-) there must be a bug

Hi,

it seems that adding

dn: cn=kopano,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: kopano

and changing all
attributeTypes to olcAttributeTypes and
objectClasses to olcObjectClasses

does the trick

Same issue here with ubuntu 18.04.1, glad this solution works for me too!