Setting Up Free Busy Interop with Exchange 2007
Zimbra Lookup Exchange Free Busy
Zimbra can lookup Exchange Free/Busy (F/B) by using the legacy webdav interface. This returns F/B information from Exchange’s F/B public folder.
1. Create a role account in Exchange to be used by Zimbra
2. Configure Zimbra using zmprov modifyConfig
- Exchange Role account:
mcf zimbraFreebusyExchangeAuthUsername [role account name]
- Role account password:
mcf zimbraFreebusyExchangeAuthPassword [role account password]
- Exchange Authorization Schema:
mcf zimbraFreebusyExchangeAuthScheme form
The form is either basic or form. Basic is authentication to Exchange via HTTP basic authentication. Form is authentication to Exchange as HTML form based authentication.
- URL to Exchange 2007 CAS server:
mcf zimbraFreebusyExchangeURL https://[URL of CAS server]
- legacydn attribute in Exchange 2007:
mcf zimbraFreebusyExchangeUserOrg "/o=first organization/ou=exchange administrative group (fydibohf23spdlt)"
You will also need to ensure that the CAS server is forwarding requests to the webdav service back to the backend Mailbox server.
Zimbra pushes F/B information to Exchange using the legacy public folder interface via webdav. This is similar to how an Exchange 2003 server would push F/B information to an Exchange 2007 server. This requires that an Exchange mail contact be created for each Zimbra account that is participating in F/B sharing.
Exchange Lookup Zimbra Free Busy
Exchange users will view the F/B information that is associated with the mail contact that has been created for the Zimbra user.
1.A role account needs to exist in Exchange with permission to update the Exchange F/B public folder. This can be done via Powershell:
add-publicfolderclientpermission -identity "\NON_IPM_SUBTREE\SCHEDULE+ FREE BUSY\EX:/o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)" -user zimbra -accessrights owner
2.Tell Exchange to search public folders for Zimbra domains.
Add-AvailabilityAddressSpace -forestname [zimbra domain] -accessmethod publicfolder
3.Create mail contact for Zimbra user new-mailcontact
-name [zimbra account]_zimbra -alias [zimbra account]_[optional suffix] -firstname [firstname] -lastname [lastname] -ExternalEmailAddress [zimbra account]@[host] -OrganizationalUnit [OU for Zimbra mail contacts] -domaincontroller [domain controller] set-mailcontact -id [zimbra account]_zimbra -displayname "[display name]" -UseMapiRichTextFormat never -emailaddresspolicyenabled $false -ExternalEmailAddress [zimbra account]@[host] -EmailAddresses [zimbra account]@[host] -customattribute15 [optional tag] -domaincontroller [domain controller]
The above will create a mail contact that will be used by Zimbra. To reduce the risk of a collision in namespace a suffix can be added to denote a Zimbra account (i.e. “_zimbra”). A custom attribute can be added to assist in merging of Exchange and Zimbra GAL
4.Configure Zimbra account to push F/B to Exchange. This assumes that the role account has already been configured. This can be done via zmprov:
zmprov ma [zimbra account] +zimbraForeignPrincipal ad:[exchange mail contact]
Merged Zimbra/Exchange GAL
Once F/B sharing has been setup, the last step is to merge the GAL on the two systems. In Exchange no further work needs to be done since all Zimbra accounts should be appearing as a mail contact in the GAL. In Zimbra you need to setup an external LDAP source. To set this up:
1.Configure zimbra domain:
md [zimbra domain] zimbraGalLdapFilter (&(|(cn=*%s*)(sn=*%s*)(gn=*%s*)(mail=*%s*))(!(msExchHideFromAddressLists=TRUE)) (!(extensionAttribute15=[optionaltag]))(mailNickname=*)(|(objectClass=user)(objectCla ss=contact)(objectClass=msExchSystemMailbox)(objectClass=msExchDynamicDistributio nList)(objectClass=group)(objectClass=publicFolder))) md [zimbra domain] zimbraGalLdapSearchBase [AD base DN] md [zimbra domain] zimbraGalLdapURL ldaps://[domain controller]:636 md [zimbra domain] zimbraGalMode both md [zimbra.example.com] zimbraGalLdapBindDn [zimbra role account in Exchange] md [zimbra.example.com] zimbraGalLdapBindPassword [zimbra role account password]
Once this is configured, Zimbra will be able to see entries from the Exchange GAL. The custom tag is used to exclude Zimbra mail contacts to avoid duplicate entries. This requires that the Exchange domain controllers are searchable via LDAP and have a valid SSL certificate that Zimbra recognizes.
If you are using self-signed certificates or a different CA you’ll need to import it into Zimbra: [run as the user “zimbra”]
/opt/zimbra/java/bin/keytool -import -trustcacerts -alias "[alias for CA]" \ -file [CA file] -keystore /opt/zimbra/java/jre/lib/security/cacerts