Skip to content

Commit

Permalink
convert to markdown
Browse files Browse the repository at this point in the history
  • Loading branch information
Greg Solovyev committed Sep 14, 2015
1 parent 6c27bba commit 661ed85
Showing 1 changed file with 82 additions and 53 deletions.
135 changes: 82 additions & 53 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,54 +1,83 @@
== Overview ==
A video walk-through of these instructions is available here: https://www.youtube.com/watch?v=kFGahQvL9Gk
These instructions are part of the set of instructions for setting up ZCS Chat feature: http://wiki.eng.zimbra.com/index.php/ZimbraIM/
These instructions were tested with OpenFire 3.10.2
== Download and install OpenFire ==
OpenFire is an XMPP server written in Java. It can be downloaded from Igniterealtime's website http://www.igniterealtime.org/projects/openfire/.
Follow OpenFire installation instructions with all default options.

== Install Zimbra OpenFire plugin to OpenFire ==
Authentication against Zimbra SOAP interface is implemented by a custom java library (ZimbraOpenFire). The source code is in ZimbraFOSS/ZimbraOpenFire project. You need the following jar files that are produced by "dist" ANT target in ZimbraOpenFire project:
<ul>
<li>zimbraopenfire.jar</li>
<li>zimbrasoap.jar</li>
<li>zimbracommon.jar</li>
<li>json.jar</li>
<li>guava-13.0.1.jar</li>
</ul>

Copy these jar files to OpenFire's lib folder (on Mac it is <b>/usr/local/openfire/lib</b>). On Mac, you have to copy these files as root. Restart OpenFire.

== Configure Zimbra authentication for OpenFire ==
Open OpenFire admin UI on port 9090 (http://your-open-fire-host:9090). You should be able to log in with default admin credentials that you created during installation.

=== Change provider classes ===
Navigate to "Server"/"System Properties" and change the following settings:
<ul>
<li>Set <b>provider.auth.className</b> to <i>com.zimbra.openfire.ZimbraAuthProvider</i></li>
<li>Set <b>provider.user.className</b> to <i>com.zimbra.openfire.ZimbraUserProvider</i></li>
</ul>
Overview
--------

A video walk-through of these instructions is available here:
<https://www.youtube.com/watch?v=kFGahQvL9Gk> These instructions are
part of the set of instructions for setting up ZCS Chat feature:
<http://wiki.eng.zimbra.com/index.php/ZimbraIM/> These instructions were
tested with OpenFire 3.10.2

Download and install OpenFire
-----------------------------

OpenFire is an XMPP server written in Java. It can be downloaded from
Igniterealtime's website
<http://www.igniterealtime.org/projects/openfire/>. Follow OpenFire
installation instructions with all default options.

Install Zimbra OpenFire plugin to OpenFire
------------------------------------------

Authentication against Zimbra SOAP interface is implemented by a custom
java library (ZimbraOpenFire). The source code is in
ZimbraFOSS/ZimbraOpenFire project. You need the following jar files that
are produced by “dist” ANT target in ZimbraOpenFire project:

- zimbraopenfire.jar
- zimbrasoap.jar
- zimbracommon.jar
- json.jar
- guava-13.0.1.jar

Copy these jar files to OpenFire's lib folder (on Mac it is
<b>/usr/local/openfire/lib</b>). On Mac, you have to copy these files as
root. Restart OpenFire.

Configure Zimbra authentication for OpenFire
--------------------------------------------

Open OpenFire admin UI on port 9090 (http://your-open-fire-host:9090).
You should be able to log in with default admin credentials that you
created during installation.

### Change provider classes

Navigate to “Server”/“System Properties” and change the following
settings:

- Set <b>provider.auth.className</b> to
<i>com.zimbra.openfire.ZimbraAuthProvider</i>
- Set <b>provider.user.className</b> to
<i>com.zimbra.openfire.ZimbraUserProvider</i>

This is what System Properties section looks like in OpenFire Admin UI:
[[File:OpenFireSystemProps.png]]

=== Set custom properties for Zimbra authentication ===
Still in "System Properties" add the following settings that will be used by ZimbraAuthProvider and ZimbraUserProvider classes to talk to Zimbra SOAP interface.
<ul>
<li>Set <b>zimbraAuthProvider.host</b> to the hostname or IP address of your ZCS mailbox server</li>
<li>Set <b>zimbraAuthProvider.port</b> to your the same port number where your Zimbra users access Zimbra Web Client. If your web MTA is running in HTTP only mode, set <b>zimbraAuthProvider.port</b> to <i>80</i>. If you are not running zmproxy, set <b>zimbraAuthProvider.port</b> to <i>7070</i>. If your web MTA allows connections over HTTPS, set <b>zimbraAuthProvider.port</b> to <i>443</i>.</li>
<li>Set <b>zimbraAuthProvider.protocol</b> to <i>http</i> if your Zimbra Web Client is running on HTTP. Set <b>zimbraAuthProvider.protocol</b> to <i>https</i> if your Zimbra Web Client is running on HTTPS.</li>
<li>Set <b>zimbraUserProvider.host</b> to the hostname or IP address of your ZCS mailbox server</li>
<li>Set <b>zimbraUserProvider.adminLogin</b> to your ZCS admin's user name. This does not have to be a global admin. This admin user has to have permissions to search and load properties of any ZCS account that will have access to Chat feature.</li>
<li>Set <b>zimbraUserProvider.adminPassword</b> to ZCS admin's password.</li>
</ul>

=== Configure XMPP domain ===
Set <b>xmpp.domain</b> property to the same value as your ZCS domain name

== Additional OpenFire settings ==
If ZCS is running with a self-signed certificate or the certificate installed in your mailboxd instance cannot be verified for whatever reason, you should instruct OpenFire to trust unverified certificates. To do so set <b>clearspace.certificate.verify</b> to <i>false</i> in System Properties in OpenFire admin UI.

== Multi-tenancy ==
=== Multiple XMPP domains in Zimbra Web Client ===
OpenFire does not support serving multiple XMPP domains from a single OpenFire server instance. Because Zimbra Chat configuration includes only a single XMPP URL, it is not possible to support multiple XMPP domains within Zimbra Web Client when Zimbra Chat is backed by OpenFire XMPP server.
=== Multiple XMPP domains in XMPP clients ===
It is possible to configure multiple OpenFire servers to authenticate against the same ZCS server. This will allow multiple XMPP domains to be running on OpenFire with authentication against a single ZCS instance. Follow configuration steps specific to OpenFire on each OpenFire server: http://wiki.eng.zimbra.com/index.php/ZimbraIM/OpenFire
![]

### Set custom properties for Zimbra authentication

Still in “System Properties” add the following settings that will be
used by ZimbraAuthProvider and ZimbraUserProvider classes to talk to
Zimbra SOAP interface.

- Set <b>zimbraAuthProvider.host</b> to the hostname or IP address of
your ZCS mailbox server
- Set <b>zimbraAuthProvider.port</b> to your the same port number
where your Zimbra users access Zimbra Web Client. If your web MTA is
running in HTTP only mode, set <b>zimbraAuthProvider.port</b> to
<i>80</i>. If you are not running zmproxy, set
<b>zimbraAuthProvider.port</b> to <i>7070</i>. If your web MTA
allows connections over HTTPS, set <b>zimbraAuthProvider.port</b> to
<i>443</i>.
- Set <b>zimbraAuthProvider.protocol</b> to <i>http</i> if your Zimbra
Web Client is running on HTTP. Set
<b>zimbraAuthProvider.protocol</b> to <i>https</i> if your Zimbra
Web Client is running on HTTPS.
- Set <b>zimbraUserProvider.host</b> to the hostname or IP address of
your ZCS mailbox server

<li>
Set <b>zimbraUserProvider.adminLogin</b> to your ZCS admin's user name.
This does not have to be a global admin. This admin user has to have
permissions to search and load

[]: OpenFireSystemProps.png "fig:OpenFireSystemProps.png"

0 comments on commit 661ed85

Please sign in to comment.