1 ### Small tutorial for use GOsa with open-xchange ###
3 Once installed open-xchange (http://www.open-xchange.org) and php4-pgsql
4 module we must do some changes to get open-xchange running with GOsa.
6 - php.ini must have extension=pg_sql.so
8 - The webserver must have access to the Postgresql server.
10 - In the connectivity section of gosa.conf must have something like this:
11 <tab class="oxchangeAccount"
12 pghost="server"
13 pguser="openexchange"
14 pgpasswd="test"
15 pgdbname="openexchange"
16 />
20 We suppose that openxchage is installed in /usr/local/openxchange,
21 and the base for GOsa ldap tree is dc=example,dc=org
24 - Make changes to admintools.conf (/usr/local/openxchange/etc/admintools.conf):
26 OXBASE="dc=example,dc=org"
27 OX_LEAF="$OXBASE"
28 # Where are the OX Users
29 USER_BASEDN="ou=people,$OX_LEAF"
30 # Where are the OX Groups
31 GROUP_BASEDN="ou=groups,$OX_LEAF"
32 # Where are the OX Resources
33 RESOURCES_BASEDN="ou=Resources,ou=ResourceObjects,ou=OxObjects,$OX_LEAF"
34 # Where are the OX Resource Groups
35 RESOURCE_GROUPS_BASEDN="ou=ResourceGroups,ou=ResourceObjects,ou=OxObjects,$OX_LEAF"
36 # Where is the Global Adressbook
37 GLOBAL_ADDRESSBOOKDN="o=AddressBook,ou=OxObjects,$OX_LEAF"
38 # where are the adressbook admins
39 GLOBAL_ADDRESSBOOK_ADMINSDN="cn=AddressAdmins,ou=OxObjects,$GLOBAL_ADDRESSBOOKDN"
41 - Make changes in login.pm (usually in /usr/lib/cgi-bin/login.pm):
42 my $ldap_userBase = 'ou=Users,ou=OxObjects,';
43 to
44 my $ldap_userBase = 'ou=people,';
46 - Put the Base in ldap.conf (/usr/local/openxchange/etc/groupware/ldap.conf)
47 BASE dc=example,dc=org
49 - If you are using as GOsa dnmode "uid", You must change in ldap.properties
50 (/usr/local/openxchange/etc/groupware/ldap.properties):
53 com.openexchange.groupware.ldap.OXUserObjectAttributeuserCountryName=userCountry
54 to
55 com.openexchange.groupware.ldap.OXUserObjectAttributeuserCountryName=st
57 com.openexchange.groupware.ldap.OXUserObjectAttributeimapServerName=imapServer
58 to
59 com.openexchange.groupware.ldap.OXUserObjectAttributeimapServerName=gosaMailServer
61 com.openexchange.groupware.ldap.OXUserObjectAttributesmtpServerName=smtpServer
62 to
63 com.openexchange.groupware.ldap.OXUserObjectAttributesmtpServerName=gosaMailServer
65 com.openexchange.groupware.ldap.userBaseDN=ou\u003DUsers,ou\u003DOxObjects
66 to
67 com.openexchange.groupware.ldap.userBaseDN=ou\u003Dpeople
71 - If you are using as GOsa dnmode "cn", the ldap.properties
72 (/usr/local/openxchange/etc/groupware/ldap.properties)
73 configuration of open-xchange must be like this:
75 com.openexchange.groupware.ldap.inetOrgPersonAttributebusinessCategoryName=businessCategory
77 com.openexchange.groupware.ldap.inetOrgPersonAttributecnName=cn
79 com.openexchange.groupware.ldap.OXUserObjectAttributeCountryName=c
81 com.openexchange.groupware.ldap.inetOrgPersonAttributedescriptionName=description
83 com.openexchange.groupware.ldap.inetOrgPersonAttributedisplayNameName=displayName
85 com.openexchange.groupware.ldap.inetOrgPersonAttributeemployeeNumberName=employeeNumber
87 com.openexchange.groupware.ldap.inetOrgPersonAttributeemployeeTypeName=employeeType
89 com.openexchange.groupware.ldap.OXUserObjectAttributecoName=co
91 com.openexchange.groupware.ldap.inetOrgPersonAttributehomePhoneName=homePhone
93 com.openexchange.groupware.ldap.inetOrgPersonAttributehomePostalAddressName=homePostalAddress
95 com.openexchange.groupware.ldap.OXUserObjectAttributeInfoName=info
97 com.openexchange.groupware.ldap.inetOrgPersonAttributeinitialsName=initials
99 com.openexchange.groupware.ldap.inetOrgPersonAttributeinternationaliSDNNumberName=internationaliSDNNumber
101 com.openexchange.groupware.ldap.OXUserObjectAttributeIPPhoneName=IPPhone
103 com.openexchange.groupware.ldap.OXUserObjectAttributeotherfacsimiletelephonenumberName=otherfacsimiletelephonenumber
105 com.openexchange.groupware.ldap.inetOrgPersonAttributeroomNumberName=roomNumber
107 com.openexchange.groupware.ldap.inetOrgPersonAttributetelexNumberName=telexNumber
109 com.openexchange.groupware.ldap.inetOrgPersonAttributeuidName=uid
111 com.openexchange.groupware.ldap.inetOrgPersonClassName=inetOrgPerson
113 com.openexchange.groupware.ldap.OXUserObjectAttributebirthDayName=birthDay
115 com.openexchange.groupware.ldap.OXUserObjectAttributeDistributionListName=OXUserDistributionList
117 com.openexchange.groupware.ldap.OXUserObjectAttributeAnniversaryName=OXUserAnniversary
119 com.openexchange.groupware.ldap.OXUserObjectAttributeBranchesName=OXUserBranches
121 com.openexchange.groupware.ldap.OXUserObjectAttributeCategoriesName=OXUserCategories
123 com.openexchange.groupware.ldap.OXUserObjectAttributeChildrenName=OXUserChildren
125 com.openexchange.groupware.ldap.OXUserObjectAttributeCityName=OXUserCity
127 com.openexchange.groupware.ldap.OXUserObjectAttributeCommentName=OXUserComment
129 com.openexchange.groupware.ldap.OXUserObjectAttributeComRegName=OXUserComReg
131 com.openexchange.groupware.ldap.OXUserObjectAttributeEmail2Name=OXUserEmail2
133 com.openexchange.groupware.ldap.OXUserObjectAttributeEmail3Name=OXUserEmail3
135 com.openexchange.groupware.ldap.OXUserObjectAttributeInstantMessenger2Name=OXUserInstantMessenger2
137 com.openexchange.groupware.ldap.OXUserObjectAttributeInstantMessengerName=OXUserInstantMessenger
139 com.openexchange.groupware.ldap.OXUserObjectAttributeMaritalStatusName=OXUserMaritalStatus
141 com.openexchange.groupware.ldap.OXUserObjectAttributeNickNameName=OXUserNickName
143 com.openexchange.groupware.ldap.OXUserObjectAttributeOtherCityName=OXUserOtherCity
145 com.openexchange.groupware.ldap.OXUserObjectAttributeOtherCountryName=OXUserOtherCountry
147 com.openexchange.groupware.ldap.OXUserObjectAttributeOtherPostalCodeName=OXUserOtherPostalCode
149 com.openexchange.groupware.ldap.OXUserObjectAttributeOtherStateName=OXUserOtherState
151 com.openexchange.groupware.ldap.OXUserObjectAttributeOtherStreetName=OXUserOtherStreet
153 com.openexchange.groupware.ldap.OXUserObjectAttributePositionName=OXUserPosition
155 com.openexchange.groupware.ldap.OXUserObjectAttributePostalCodeName=OXUserPostalCode
157 com.openexchange.groupware.ldap.OXUserObjectAttributeProfessionName=OXUserProfession
159 com.openexchange.groupware.ldap.OXUserObjectAttributeSalesVolumeName=OXUserSalesVolume
161 com.openexchange.groupware.ldap.OXUserObjectAttributeSpouseNameName=OXUserSpouseName
163 com.openexchange.groupware.ldap.OXUserObjectAttributeStateName=OXUserState
165 com.openexchange.groupware.ldap.OXUserObjectAttributesuffixName=OXUserSuffix
167 com.openexchange.groupware.ldap.OXUserObjectAttributeTaxIDName=OXUserTaxID
169 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleAssistantName=OXUserTeleAssistant
171 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleBusiness2Name=OXUserTeleBusiness2
173 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleCallbackName=OXUserTeleCallback
175 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleCarName=OXUserTeleCar
177 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleCompanyName=OXUserTeleCompany
179 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleFax2Name=OXUserTeleFax2
181 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleHome2Name=OXUserTeleHome2
183 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleMobile2Name=OXUserTeleMobile2
185 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleOtherName=OXUserTeleOther
187 com.openexchange.groupware.ldap.OXUserObjectAttributeTelePrimaryName=OXUserTelePrimary
189 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleRadioName=OXUserTeleRadio
191 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleTTYName=OXUserTeleTTY
193 com.openexchange.groupware.ldap.OXUserObjectAttributeurlName=url
195 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef01Name=OXUserUserUndef01
197 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef02Name=OXUserUserUndef02
199 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef03Name=OXUserUserUndef03
201 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef04Name=OXUserUserUndef04
203 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef05Name=OXUserUserUndef05
205 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef06Name=OXUserUserUndef06
207 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef07Name=OXUserUserUndef07
209 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef08Name=OXUserUserUndef08
211 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef09Name=OXUserUserUndef09
213 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef10Name=OXUserUserUndef10
215 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef11Name=OXUserUserUndef11
217 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef12Name=OXUserUserUndef12
219 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef13Name=OXUserUserUndef13
221 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef14Name=OXUserUserUndef14
223 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef15Name=OXUserUserUndef15
225 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef16Name=OXUserUserUndef16
227 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef17Name=OXUserUserUndef17
229 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef18Name=OXUserUserUndef18
231 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef19Name=OXUserUserUndef19
233 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef20Name=OXUserUserUndef20
235 com.openexchange.groupware.ldap.OXUserObjectClassName=OXUserObject
237 com.openexchange.groupware.ldap.AllContactUIDSearch=(&(objectClass\u003DinetOrgPerson)(objectClass\u003DOXUserObject))
239 !com.openexchange.groupware.ldap.AllContactUIDSearchScope=1
241 com.openexchange.groupware.ldap.credentialsBaseDN=[credentialsBaseDN]
243 com.openexchange.groupware.ldap.credentialsDN=cn\u003D[uid],[userBaseDN],[credentialsBaseDN]
245 com.openexchange.groupware.ldap.groupOfNamesAttributememberName=member
247 com.openexchange.groupware.ldap.AddressAdminsDN=cn\u003DAddressAdmins,[globalAddressBookBaseDN]
249 com.openexchange.groupware.ldap.globalAddressBookBaseDN=o\u003DAddressBook
251 com.openexchange.groupware.ldap.GlobalAddressBookEntryDN=cn\u003D[contactid],[globalAddressBookBaseDN]
253 com.openexchange.groupware.ldap.InternalUsersForeSureNameUIDPatternSearchFilter=(&(objectClass\u003DinetOrgPerson)(objectClass\u003DOXUserObject)(|(sn\u003D[pattern])(givenname\u003D[pattern])(cn\u003D[pattern]))(mailEnabled\u003Dok))
255 com.openexchange.groupware.ldap.InternalUsersStartingLetterSearchFilter=(&(objectClass\u003DinetOrgPerson)(objectClass\u003DOXUserObject)(sn\u003D[letter]*)(mailEnabled\u003Dok))
257 com.openexchange.groupware.ldap.UserAddressBookEntryDN=cn\u003D[contactid],[UserAddressBookDN]
259 com.openexchange.groupware.ldap.localDomainsBaseDN=ou\u003DDNSObjects,ou\u003DAdminObjects
261 com.openexchange.groupware.ldap.OXVDomainAttributedomainNameName=domainName
263 com.openexchange.groupware.ldap.LocalDomainsSearchFilter=(&(objectClass\u003DOXVDomainObject)(MTALocaldomain\u003Dtrue))
265 com.openexchange.groupware.ldap.OXIMAPFolderAttributefnName=fn
267 com.openexchange.groupware.ldap.sharedFolderBaseDN=ou\u003DSharedFolder
269 com.openexchange.groupware.ldap.SharedFolderSearchFilter=(&(objectclass\u003DOXIMAPFolderObject)(mailenabled\u003Dok))
271 !com.openexchange.groupware.ldap.sharedFolderSearchScope=1
273 com.openexchange.groupware.ldap.OXResourceGroupAttributeresourceGroupAvailableName=resourceGroupAvailable
275 com.openexchange.groupware.ldap.OXResourceGroupAttributeresourceGroupMemberName=resourceGroupMember
277 com.openexchange.groupware.ldap.OXResourceGroupAttributeresourceGroupNameName=resourceGroupName
279 com.openexchange.groupware.ldap.ResourceGroupDN=resourceGroupName\u003D[group],[resourceGroupBaseDN]
281 com.openexchange.groupware.ldap.ResourceGroupPatternSearchFilter=(&(objectclass\u003DOXResourceGroupObject)(resourceGroupName\u003D[pattern]))
283 com.openexchange.groupware.ldap.ResourceGroupSearchFilter=(objectclass\u003DOXResourceGroupObject)
285 !com.openexchange.groupware.ldap.ResourceGroupSearchScope=1
287 com.openexchange.groupware.ldap.OXResourceAttributeresourceNameName=resourceName
289 #Where are the resources?
290 com.openexchange.groupware.ldap.resourceBaseDN=ou\u003DResources,ou\u003DResourceObjects
292 com.openexchange.groupware.ldap.ResourceDN=resourceName\u003D[resource],[resourceBaseDN]
294 #Where are the resource groups?
295 com.openexchange.groupware.ldap.resourceGroupBaseDN=ou\u003DResourceGroups,ou\u003DResourceObjects
297 #Searches resources with the a pattern.
298 com.openexchange.groupware.ldap.ResourcePatternSearchFilter=(&(objectclass\u003DOXResourceObject)(resourceName\u003D[pattern]))
300 !com.openexchange.groupware.ldap.ResourceSearchScope=1
302 com.openexchange.groupware.ldap.DNForDefaultMail=cn\u003Dmailadmin,[userBaseDN]
304 com.openexchange.groupware.ldap.Factory.AuthenticationSupport=com.openexchange.groupware.ldap.DefaultAuthenticationSupport
306 com.openexchange.groupware.ldap.Factory.ContactSupport=com.openexchange.groupware.ldap.DefaultContactSupport
308 com.openexchange.groupware.ldap.Factory.MailSupport=com.openexchange.groupware.ldap.DefaultMailSupport
310 com.openexchange.groupware.ldap.Factory.ResourcesHandle=com.openexchange.groupware.ldap.DefaultResourcesHandle
312 #Class, that implementes UserGroupHandle, ResourcesHandle
313 com.openexchange.groupware.ldap.Factory.UserGroupHandle=com.openexchange.groupware.ldap.DefaultUserGroupHandle
315 #Where to search for groups?
316 com.openexchange.groupware.ldap.groupBaseDN=ou\u003DGroups
318 #Complete dn of a group.
319 com.openexchange.groupware.ldap.GroupDN=cn\u003D[gid],[groupBaseDN]
321 com.openexchange.groupware.ldap.GroupSearchFilter=(objectclass\u003DposixGroup)
323 #Searches all groups for the user
324 com.openexchange.groupware.ldap.GroupsForUserSearchFilter=(&(objectclass\u003DposixGroup)(memberUid\u003D[uid]))
326 com.openexchange.groupware.ldap.GroupsPatternSearchFilter=(&(objectclass\u003DposixGroup)(cn\u003D[pattern]))
328 !com.openexchange.groupware.ldap.GroupSearchScope=1
330 com.openexchange.groupware.ldap.inetOrgPersonAttributefacsimileName=facsimileTelephoneNumber
332 com.openexchange.groupware.ldap.inetOrgPersonAttributegivenNameName=givenName
334 com.openexchange.groupware.ldap.inetOrgPersonAttributelabeledURIName=labeledURI
336 com.openexchange.groupware.ldap.inetOrgPersonAttributelName=l
338 com.openexchange.groupware.ldap.inetOrgPersonAttributemailName=mail
340 com.openexchange.groupware.ldap.inetOrgPersonAttributemobileName=mobile
342 com.openexchange.groupware.ldap.inetOrgPersonAttributeoName=o
344 com.openexchange.groupware.ldap.inetOrgPersonAttributeouName=ou
346 com.openexchange.groupware.ldap.inetOrgPersonAttributepagerName=pager
348 com.openexchange.groupware.ldap.inetOrgPersonAttributepostalCodeName=postalCode
350 com.openexchange.groupware.ldap.inetOrgPersonAttributepreferredLanguageName=preferredLanguage
352 com.openexchange.groupware.ldap.inetOrgPersonAttributesnName=sn
354 com.openexchange.groupware.ldap.inetOrgPersonAttributestName=st
356 com.openexchange.groupware.ldap.inetOrgPersonAttributestreetName=street
358 com.openexchange.groupware.ldap.inetOrgPersonAttributetelephoneNumberName=telephoneNumber
360 com.openexchange.groupware.ldap.inetOrgPersonAttributetitleName=title
362 com.openexchange.groupware.ldap.OXUserObjectAttributealiasName=alias
364 com.openexchange.groupware.ldap.OXUserObjectAttributeappointmentDaysName=OXAppointmentDays
366 com.openexchange.groupware.ldap.OXUserObjectAttributeimapServerName=gosaMailServer
368 com.openexchange.groupware.ldap.OXUserObjectAttributemailDomainName=mailDomain
370 com.openexchange.groupware.ldap.OXUserObjectAttributesmtpServerName=gosaMailServer
372 com.openexchange.groupware.ldap.OXUserObjectAttributetaskDaysName=OXTaskDays
374 com.openexchange.groupware.ldap.OXUserObjectAttributetimeZoneName=OXTimeZone
376 com.openexchange.groupware.ldap.OXUserObjectAttributeuserCountryName=st
378 com.openexchange.groupware.ldap.OXUserObjectAttributevaddressName=vaddress
380 com.openexchange.groupware.ldap.posixAccountAttributecnName=cn
382 com.openexchange.groupware.ldap.posixAccountAttributeuidName=uid
384 com.openexchange.groupware.ldap.posixGroupAttributecnName=cn
386 com.openexchange.groupware.ldap.posixGroupAttributememberUidName=memberUid
388 com.openexchange.groupware.ldap.UserAddressBookDN=ou\u003Daddr,cn\u003D[uid],[userBaseDN]
390 com.openexchange.groupware.ldap.UserAttributeOpenLDAPaciName=OpenLDAPaci
392 com.openexchange.groupware.ldap.userBaseDN=ou\u003Dpeople
394 #DN to the user object
395 com.openexchange.groupware.ldap.UserDN=cn\u003D[uid],[userBaseDN]
397 com.openexchange.groupware.ldap.UsersCNPatternSearchFilter=(&(objectclass\u003DposixAccount)(objectClass\u003DinetOrgPerson)(|(cn\u003D[pattern])(givenName\u003D[pattern])(cn\u003D[pattern])))
399 com.openexchange.groupware.ldap.UserSearchFilter=(&(cn\u003D[uid])(objectClass\u003DOXUserObject))
401 !com.openexchange.groupware.ldap.UserSearchScope=1
403 com.openexchange.groupware.ldap.UsersForeSureNamePatternSearchFilter=(&(objectclass\u003DposixAccount)(|(givenName\u003D[pattern])(sn\u003D[pattern])))
405 com.openexchange.groupware.ldap.UsersForeSureNameUIDPatternSearchFilter=(&(objectclass\u003DposixAccount)(objectClass\u003DinetOrgPerson)(|(givenName\u003D[pattern])(sn\u003D[pattern])(cn\u003D[pattern])))
407 com.openexchange.groupware.ldap.UsersPatternSearchFilter=(&(objectclass\u003DposixAccount)(cn\u003D[pattern]))
409 #Define the objectClasses an user object should belong to if you are performing pattern searches.
410 com.openexchange.groupware.ldap.UsersPatternSearchObjectClasses=posixAccount,inetOrgPerson,OXUserObject
412 com.openexchange.groupware.ldap.GlobalAddressBookSearchScope=1
414 com.openexchange.groupware.ldap.inetOrgPersonAttributejpegPhotoName=jpegPhoto
416 com.openexchange.groupware.ldap.OXUserObjectAttributeDayViewEndTimeName=OXDayViewEndTime
418 com.openexchange.groupware.ldap.OXUserObjectAttributeDayViewStartTimeName=OXDayViewStartTime
420 com.openexchange.groupware.ldap.OXUserObjectAttributeDayViewIntervalName=OXDayViewInterval
422 !com.openexchange.groupware.ldap.LocalDomainsSearchScope=1
429 This configuration is based in documentation gets from
430 http://www.open-xchange.org/oxwiki/
432 TODO:
433 - more testing
434 - check cn configuration
435 - check addressbook
436 - subtree support