### Small tutorial for use GOsa with open-xchange ### Once installed open-xchange (http://www.open-xchange.org) and php4-pgsql module we must do some changes to get open-xchange running with GOsa. - php.ini must have extension=pg_sql.so - The webserver must have access to the Postgresql server. - In the connectivity section of gosa.conf must have something like this: We suppose that openxchage is installed in /usr/local/openxchange, and the base for GOsa ldap tree is dc=example,dc=org - Make changes to admintools.conf (/usr/local/openxchange/etc/admintools.conf): OXBASE="dc=example,dc=org" OX_LEAF="$OXBASE" # Where are the OX Users USER_BASEDN="ou=people,$OX_LEAF" # Where are the OX Groups GROUP_BASEDN="ou=groups,$OX_LEAF" # Where are the OX Resources RESOURCES_BASEDN="ou=Resources,ou=ResourceObjects,ou=OxObjects,$OX_LEAF" # Where are the OX Resource Groups RESOURCE_GROUPS_BASEDN="ou=ResourceGroups,ou=ResourceObjects,ou=OxObjects,$OX_LEAF" # Where is the Global Adressbook GLOBAL_ADDRESSBOOKDN="o=AddressBook,ou=OxObjects,$OX_LEAF" # where are the adressbook admins GLOBAL_ADDRESSBOOK_ADMINSDN="cn=AddressAdmins,ou=OxObjects,$GLOBAL_ADDRESSBOOKDN" - Make changes in login.pm (usually in /usr/lib/cgi-bin/login.pm): my $ldap_userBase = 'ou=Users,ou=OxObjects,'; to my $ldap_userBase = 'ou=people,'; - Put the Base in ldap.conf (/usr/local/openxchange/etc/groupware/ldap.conf) BASE dc=example,dc=org - If you are using as GOsa dnmode "uid", You must change in ldap.properties (/usr/local/openxchange/etc/groupware/ldap.properties): com.openexchange.groupware.ldap.OXUserObjectAttributeuserCountryName=userCountry to com.openexchange.groupware.ldap.OXUserObjectAttributeuserCountryName=st com.openexchange.groupware.ldap.OXUserObjectAttributeimapServerName=imapServer to com.openexchange.groupware.ldap.OXUserObjectAttributeimapServerName=gosaMailServer com.openexchange.groupware.ldap.OXUserObjectAttributesmtpServerName=smtpServer to com.openexchange.groupware.ldap.OXUserObjectAttributesmtpServerName=gosaMailServer com.openexchange.groupware.ldap.userBaseDN=ou\u003DUsers,ou\u003DOxObjects to com.openexchange.groupware.ldap.userBaseDN=ou\u003Dpeople - If you are using as GOsa dnmode "cn", the ldap.properties (/usr/local/openxchange/etc/groupware/ldap.properties) configuration of open-xchange must be like this: com.openexchange.groupware.ldap.inetOrgPersonAttributebusinessCategoryName=businessCategory com.openexchange.groupware.ldap.inetOrgPersonAttributecnName=cn com.openexchange.groupware.ldap.OXUserObjectAttributeCountryName=c com.openexchange.groupware.ldap.inetOrgPersonAttributedescriptionName=description com.openexchange.groupware.ldap.inetOrgPersonAttributedisplayNameName=displayName com.openexchange.groupware.ldap.inetOrgPersonAttributeemployeeNumberName=employeeNumber com.openexchange.groupware.ldap.inetOrgPersonAttributeemployeeTypeName=employeeType com.openexchange.groupware.ldap.OXUserObjectAttributecoName=co com.openexchange.groupware.ldap.inetOrgPersonAttributehomePhoneName=homePhone com.openexchange.groupware.ldap.inetOrgPersonAttributehomePostalAddressName=homePostalAddress com.openexchange.groupware.ldap.OXUserObjectAttributeInfoName=info com.openexchange.groupware.ldap.inetOrgPersonAttributeinitialsName=initials com.openexchange.groupware.ldap.inetOrgPersonAttributeinternationaliSDNNumberName=internationaliSDNNumber com.openexchange.groupware.ldap.OXUserObjectAttributeIPPhoneName=IPPhone com.openexchange.groupware.ldap.OXUserObjectAttributeotherfacsimiletelephonenumberName=otherfacsimiletelephonenumber com.openexchange.groupware.ldap.inetOrgPersonAttributeroomNumberName=roomNumber com.openexchange.groupware.ldap.inetOrgPersonAttributetelexNumberName=telexNumber com.openexchange.groupware.ldap.inetOrgPersonAttributeuidName=uid com.openexchange.groupware.ldap.inetOrgPersonClassName=inetOrgPerson com.openexchange.groupware.ldap.OXUserObjectAttributebirthDayName=birthDay com.openexchange.groupware.ldap.OXUserObjectAttributeDistributionListName=OXUserDistributionList com.openexchange.groupware.ldap.OXUserObjectAttributeAnniversaryName=OXUserAnniversary com.openexchange.groupware.ldap.OXUserObjectAttributeBranchesName=OXUserBranches com.openexchange.groupware.ldap.OXUserObjectAttributeCategoriesName=OXUserCategories com.openexchange.groupware.ldap.OXUserObjectAttributeChildrenName=OXUserChildren com.openexchange.groupware.ldap.OXUserObjectAttributeCityName=OXUserCity com.openexchange.groupware.ldap.OXUserObjectAttributeCommentName=OXUserComment com.openexchange.groupware.ldap.OXUserObjectAttributeComRegName=OXUserComReg com.openexchange.groupware.ldap.OXUserObjectAttributeEmail2Name=OXUserEmail2 com.openexchange.groupware.ldap.OXUserObjectAttributeEmail3Name=OXUserEmail3 com.openexchange.groupware.ldap.OXUserObjectAttributeInstantMessenger2Name=OXUserInstantMessenger2 com.openexchange.groupware.ldap.OXUserObjectAttributeInstantMessengerName=OXUserInstantMessenger com.openexchange.groupware.ldap.OXUserObjectAttributeMaritalStatusName=OXUserMaritalStatus com.openexchange.groupware.ldap.OXUserObjectAttributeNickNameName=OXUserNickName com.openexchange.groupware.ldap.OXUserObjectAttributeOtherCityName=OXUserOtherCity com.openexchange.groupware.ldap.OXUserObjectAttributeOtherCountryName=OXUserOtherCountry com.openexchange.groupware.ldap.OXUserObjectAttributeOtherPostalCodeName=OXUserOtherPostalCode com.openexchange.groupware.ldap.OXUserObjectAttributeOtherStateName=OXUserOtherState com.openexchange.groupware.ldap.OXUserObjectAttributeOtherStreetName=OXUserOtherStreet com.openexchange.groupware.ldap.OXUserObjectAttributePositionName=OXUserPosition com.openexchange.groupware.ldap.OXUserObjectAttributePostalCodeName=OXUserPostalCode com.openexchange.groupware.ldap.OXUserObjectAttributeProfessionName=OXUserProfession com.openexchange.groupware.ldap.OXUserObjectAttributeSalesVolumeName=OXUserSalesVolume com.openexchange.groupware.ldap.OXUserObjectAttributeSpouseNameName=OXUserSpouseName com.openexchange.groupware.ldap.OXUserObjectAttributeStateName=OXUserState com.openexchange.groupware.ldap.OXUserObjectAttributesuffixName=OXUserSuffix com.openexchange.groupware.ldap.OXUserObjectAttributeTaxIDName=OXUserTaxID com.openexchange.groupware.ldap.OXUserObjectAttributeTeleAssistantName=OXUserTeleAssistant com.openexchange.groupware.ldap.OXUserObjectAttributeTeleBusiness2Name=OXUserTeleBusiness2 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleCallbackName=OXUserTeleCallback com.openexchange.groupware.ldap.OXUserObjectAttributeTeleCarName=OXUserTeleCar com.openexchange.groupware.ldap.OXUserObjectAttributeTeleCompanyName=OXUserTeleCompany com.openexchange.groupware.ldap.OXUserObjectAttributeTeleFax2Name=OXUserTeleFax2 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleHome2Name=OXUserTeleHome2 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleMobile2Name=OXUserTeleMobile2 com.openexchange.groupware.ldap.OXUserObjectAttributeTeleOtherName=OXUserTeleOther com.openexchange.groupware.ldap.OXUserObjectAttributeTelePrimaryName=OXUserTelePrimary com.openexchange.groupware.ldap.OXUserObjectAttributeTeleRadioName=OXUserTeleRadio com.openexchange.groupware.ldap.OXUserObjectAttributeTeleTTYName=OXUserTeleTTY com.openexchange.groupware.ldap.OXUserObjectAttributeurlName=url com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef01Name=OXUserUserUndef01 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef02Name=OXUserUserUndef02 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef03Name=OXUserUserUndef03 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef04Name=OXUserUserUndef04 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef05Name=OXUserUserUndef05 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef06Name=OXUserUserUndef06 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef07Name=OXUserUserUndef07 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef08Name=OXUserUserUndef08 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef09Name=OXUserUserUndef09 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef10Name=OXUserUserUndef10 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef11Name=OXUserUserUndef11 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef12Name=OXUserUserUndef12 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef13Name=OXUserUserUndef13 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef14Name=OXUserUserUndef14 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef15Name=OXUserUserUndef15 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef16Name=OXUserUserUndef16 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef17Name=OXUserUserUndef17 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef18Name=OXUserUserUndef18 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef19Name=OXUserUserUndef19 com.openexchange.groupware.ldap.OXUserObjectAttributeUserUndef20Name=OXUserUserUndef20 com.openexchange.groupware.ldap.OXUserObjectClassName=OXUserObject com.openexchange.groupware.ldap.AllContactUIDSearch=(&(objectClass\u003DinetOrgPerson)(objectClass\u003DOXUserObject)) !com.openexchange.groupware.ldap.AllContactUIDSearchScope=1 com.openexchange.groupware.ldap.credentialsBaseDN=[credentialsBaseDN] com.openexchange.groupware.ldap.credentialsDN=cn\u003D[uid],[userBaseDN],[credentialsBaseDN] com.openexchange.groupware.ldap.groupOfNamesAttributememberName=member com.openexchange.groupware.ldap.AddressAdminsDN=cn\u003DAddressAdmins,[globalAddressBookBaseDN] com.openexchange.groupware.ldap.globalAddressBookBaseDN=o\u003DAddressBook com.openexchange.groupware.ldap.GlobalAddressBookEntryDN=cn\u003D[contactid],[globalAddressBookBaseDN] com.openexchange.groupware.ldap.InternalUsersForeSureNameUIDPatternSearchFilter=(&(objectClass\u003DinetOrgPerson)(objectClass\u003DOXUserObject)(|(sn\u003D[pattern])(givenname\u003D[pattern])(cn\u003D[pattern]))(mailEnabled\u003Dok)) com.openexchange.groupware.ldap.InternalUsersStartingLetterSearchFilter=(&(objectClass\u003DinetOrgPerson)(objectClass\u003DOXUserObject)(sn\u003D[letter]*)(mailEnabled\u003Dok)) com.openexchange.groupware.ldap.UserAddressBookEntryDN=cn\u003D[contactid],[UserAddressBookDN] com.openexchange.groupware.ldap.localDomainsBaseDN=ou\u003DDNSObjects,ou\u003DAdminObjects com.openexchange.groupware.ldap.OXVDomainAttributedomainNameName=domainName com.openexchange.groupware.ldap.LocalDomainsSearchFilter=(&(objectClass\u003DOXVDomainObject)(MTALocaldomain\u003Dtrue)) com.openexchange.groupware.ldap.OXIMAPFolderAttributefnName=fn com.openexchange.groupware.ldap.sharedFolderBaseDN=ou\u003DSharedFolder com.openexchange.groupware.ldap.SharedFolderSearchFilter=(&(objectclass\u003DOXIMAPFolderObject)(mailenabled\u003Dok)) !com.openexchange.groupware.ldap.sharedFolderSearchScope=1 com.openexchange.groupware.ldap.OXResourceGroupAttributeresourceGroupAvailableName=resourceGroupAvailable com.openexchange.groupware.ldap.OXResourceGroupAttributeresourceGroupMemberName=resourceGroupMember com.openexchange.groupware.ldap.OXResourceGroupAttributeresourceGroupNameName=resourceGroupName com.openexchange.groupware.ldap.ResourceGroupDN=resourceGroupName\u003D[group],[resourceGroupBaseDN] com.openexchange.groupware.ldap.ResourceGroupPatternSearchFilter=(&(objectclass\u003DOXResourceGroupObject)(resourceGroupName\u003D[pattern])) com.openexchange.groupware.ldap.ResourceGroupSearchFilter=(objectclass\u003DOXResourceGroupObject) !com.openexchange.groupware.ldap.ResourceGroupSearchScope=1 com.openexchange.groupware.ldap.OXResourceAttributeresourceNameName=resourceName #Where are the resources? com.openexchange.groupware.ldap.resourceBaseDN=ou\u003DResources,ou\u003DResourceObjects com.openexchange.groupware.ldap.ResourceDN=resourceName\u003D[resource],[resourceBaseDN] #Where are the resource groups? com.openexchange.groupware.ldap.resourceGroupBaseDN=ou\u003DResourceGroups,ou\u003DResourceObjects #Searches resources with the a pattern. com.openexchange.groupware.ldap.ResourcePatternSearchFilter=(&(objectclass\u003DOXResourceObject)(resourceName\u003D[pattern])) !com.openexchange.groupware.ldap.ResourceSearchScope=1 com.openexchange.groupware.ldap.DNForDefaultMail=cn\u003Dmailadmin,[userBaseDN] com.openexchange.groupware.ldap.Factory.AuthenticationSupport=com.openexchange.groupware.ldap.DefaultAuthenticationSupport com.openexchange.groupware.ldap.Factory.ContactSupport=com.openexchange.groupware.ldap.DefaultContactSupport com.openexchange.groupware.ldap.Factory.MailSupport=com.openexchange.groupware.ldap.DefaultMailSupport com.openexchange.groupware.ldap.Factory.ResourcesHandle=com.openexchange.groupware.ldap.DefaultResourcesHandle #Class, that implementes UserGroupHandle, ResourcesHandle com.openexchange.groupware.ldap.Factory.UserGroupHandle=com.openexchange.groupware.ldap.DefaultUserGroupHandle #Where to search for groups? com.openexchange.groupware.ldap.groupBaseDN=ou\u003DGroups #Complete dn of a group. com.openexchange.groupware.ldap.GroupDN=cn\u003D[gid],[groupBaseDN] com.openexchange.groupware.ldap.GroupSearchFilter=(objectclass\u003DposixGroup) #Searches all groups for the user com.openexchange.groupware.ldap.GroupsForUserSearchFilter=(&(objectclass\u003DposixGroup)(memberUid\u003D[uid])) com.openexchange.groupware.ldap.GroupsPatternSearchFilter=(&(objectclass\u003DposixGroup)(cn\u003D[pattern])) !com.openexchange.groupware.ldap.GroupSearchScope=1 com.openexchange.groupware.ldap.inetOrgPersonAttributefacsimileName=facsimileTelephoneNumber com.openexchange.groupware.ldap.inetOrgPersonAttributegivenNameName=givenName com.openexchange.groupware.ldap.inetOrgPersonAttributelabeledURIName=labeledURI com.openexchange.groupware.ldap.inetOrgPersonAttributelName=l com.openexchange.groupware.ldap.inetOrgPersonAttributemailName=mail com.openexchange.groupware.ldap.inetOrgPersonAttributemobileName=mobile com.openexchange.groupware.ldap.inetOrgPersonAttributeoName=o com.openexchange.groupware.ldap.inetOrgPersonAttributeouName=ou com.openexchange.groupware.ldap.inetOrgPersonAttributepagerName=pager com.openexchange.groupware.ldap.inetOrgPersonAttributepostalCodeName=postalCode com.openexchange.groupware.ldap.inetOrgPersonAttributepreferredLanguageName=preferredLanguage com.openexchange.groupware.ldap.inetOrgPersonAttributesnName=sn com.openexchange.groupware.ldap.inetOrgPersonAttributestName=st com.openexchange.groupware.ldap.inetOrgPersonAttributestreetName=street com.openexchange.groupware.ldap.inetOrgPersonAttributetelephoneNumberName=telephoneNumber com.openexchange.groupware.ldap.inetOrgPersonAttributetitleName=title com.openexchange.groupware.ldap.OXUserObjectAttributealiasName=alias com.openexchange.groupware.ldap.OXUserObjectAttributeappointmentDaysName=OXAppointmentDays com.openexchange.groupware.ldap.OXUserObjectAttributeimapServerName=gosaMailServer com.openexchange.groupware.ldap.OXUserObjectAttributemailDomainName=mailDomain com.openexchange.groupware.ldap.OXUserObjectAttributesmtpServerName=gosaMailServer com.openexchange.groupware.ldap.OXUserObjectAttributetaskDaysName=OXTaskDays com.openexchange.groupware.ldap.OXUserObjectAttributetimeZoneName=OXTimeZone com.openexchange.groupware.ldap.OXUserObjectAttributeuserCountryName=st com.openexchange.groupware.ldap.OXUserObjectAttributevaddressName=vaddress com.openexchange.groupware.ldap.posixAccountAttributecnName=cn com.openexchange.groupware.ldap.posixAccountAttributeuidName=uid com.openexchange.groupware.ldap.posixGroupAttributecnName=cn com.openexchange.groupware.ldap.posixGroupAttributememberUidName=memberUid com.openexchange.groupware.ldap.UserAddressBookDN=ou\u003Daddr,cn\u003D[uid],[userBaseDN] com.openexchange.groupware.ldap.UserAttributeOpenLDAPaciName=OpenLDAPaci com.openexchange.groupware.ldap.userBaseDN=ou\u003Dpeople #DN to the user object com.openexchange.groupware.ldap.UserDN=cn\u003D[uid],[userBaseDN] com.openexchange.groupware.ldap.UsersCNPatternSearchFilter=(&(objectclass\u003DposixAccount)(objectClass\u003DinetOrgPerson)(|(cn\u003D[pattern])(givenName\u003D[pattern])(cn\u003D[pattern]))) com.openexchange.groupware.ldap.UserSearchFilter=(&(cn\u003D[uid])(objectClass\u003DOXUserObject)) !com.openexchange.groupware.ldap.UserSearchScope=1 com.openexchange.groupware.ldap.UsersForeSureNamePatternSearchFilter=(&(objectclass\u003DposixAccount)(|(givenName\u003D[pattern])(sn\u003D[pattern]))) com.openexchange.groupware.ldap.UsersForeSureNameUIDPatternSearchFilter=(&(objectclass\u003DposixAccount)(objectClass\u003DinetOrgPerson)(|(givenName\u003D[pattern])(sn\u003D[pattern])(cn\u003D[pattern]))) com.openexchange.groupware.ldap.UsersPatternSearchFilter=(&(objectclass\u003DposixAccount)(cn\u003D[pattern])) #Define the objectClasses an user object should belong to if you are performing pattern searches. com.openexchange.groupware.ldap.UsersPatternSearchObjectClasses=posixAccount,inetOrgPerson,OXUserObject com.openexchange.groupware.ldap.GlobalAddressBookSearchScope=1 com.openexchange.groupware.ldap.inetOrgPersonAttributejpegPhotoName=jpegPhoto com.openexchange.groupware.ldap.OXUserObjectAttributeDayViewEndTimeName=OXDayViewEndTime com.openexchange.groupware.ldap.OXUserObjectAttributeDayViewStartTimeName=OXDayViewStartTime com.openexchange.groupware.ldap.OXUserObjectAttributeDayViewIntervalName=OXDayViewInterval !com.openexchange.groupware.ldap.LocalDomainsSearchScope=1 This configuration is based in documentation gets from http://www.open-xchange.org/oxwiki/ TODO: - more testing - check cn configuration - check addressbook - subtree support