Zarafa WebAccess Single Sign On configuration
From Zarafa wiki
Introduction
The article describes how you can setup a Single Sign On Zarafa WebAccess with Active Directory domain controller.<BR> This article has been tested on Red Hat Enterprise Linux server 5, but can also be used as basis for other distributions.
Prerequisites
It is assumed the following prerequisites are in place (document has been tested with RHEL 5):
- Windows Server 2003 R2 or 2008 SP1 which is configured as domain controller
- Windows XP or Vista client that has joined the Windows domain
The webserver is placed in a different domain in this case. This is no requirement, but this makes the document a bit more clear on how to create the Kerberos principal (this can be tricky if you have the servers in different domains).
In this example, the following servers and realms will be referenced:
- AD Server <tt>dc.example.com</tt>
- Linux Server <tt>zarafa.testdomain.com</tt>
- Kerberos Realm <tt>EXAMPLE.COM</tt>
Make sure that both servers are reachable via their FQDN (Fully Qualified Domain Name) and the PTR records are ok.<br> For time synchronization, configure NTP on all machines.
A working setup was created by:
- Created a forward lookup zone in ADS for <tt>testdomain.com</tt>
- Added <tt>zarafa.testdomain.com</tt> to the forward lookup zone (including PTR record).
- Setup NTP on the Linux machine (<tt>zarafa.testdomain.com</tt>) to sync it's time with the ADS machine.
Active Directory configuration
- Add a new user <tt>httpd-linux</tt> to your Active Directory.
- Make sure that you enable the option "Password never expires".
- On the account properties for this user enable "Use DES encryption types for this account".
- After setting this account property RESET the password for <tt>httpd-linux</tt>.
Install the Windows Support tools which include the <tt>ktpass.exe</tt> program. See the Microsoft download page for the download of these tools.
Execute the following command to create a keytab file for the Apache webserver.
<code>
ktpass -princ HTTP/zarafa.testdomain.com@EXAMPLE.COM -mapuser EXAMPLE\httpd-linux -crypto DES-CBC-MD5 -ptype KRB5_NT_PRINCIPAL -mapop set +desonly -pass secret -out c:\keytab
</code>
Copy the keytab file to the directory <tt>/etc/httpd/conf/</tt> on your Linux server.<BR> You can use a SCP client for this, like WinSCP.
Apache configuration
Install the <tt>mod_auth_kerb</tt> Apache module.
<code> yum install mod_auth_kerb </code>
Open the file <tt>/etc/httpd/conf.d/auth_kerb.conf</tt>. Add the following lines at the end of this file:
<code>
Alias /webaccess /usr/share/zarafa-webaccess # <Directory /usr/share/zarafa-webaccess> AuthType Kerberos AuthName "Kerberos Login" KrbMethodNegotiate On KrbMethodK5Passwd Off KrbServiceName HTTP KrbAuthRealms EXAMPLE.COM Krb5KeyTab /etc/httpd/conf/keytab require valid-user </Directory>
</code>
Set the filesystem permissions of the keytab file to 400 (<tt>r--------</tt>) and change the owner to the Apache user:
<code>
chmod 400 /etc/httpd/conf/keytab chown apache.apache /etc/httpd/conf/keytab
</code>
Open the file <tt>/etc/krb5.conf</tt> and insert the following lines:
<code>
[libdefaults]
default_realm = EXAMPLE.COM
#
[realms]
ZARAFA.LOCAL = {
kdc = dc.example.com
admin_server = dc.example.com
}
#
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
</code>
Replace the <tt>kdc</tt> and <tt>admin_server</tt> with the FQDN of the Domain Controller.
Restart Apache to activate all changes:
<code>service httpd restart</code>
Zarafa configuration
To setup a Single Sign On environment for Zarafa Collaboration Platform, you need to make a trust between the Apache webserver and the Zarafa Storage Server. The trust is necessary to handle the Webaccess authentication by the Apache webserver, not by the Zarafa Storage Server anymore.
Change the following line in the <tt>/etc/zarafa/server.cfg</tt> file:
<code>local_admin_users = root apache</code>
To configure the Zarafa WebAccess for Single Sign On change the following option in the <tt>config.php</tt> file:
<code> define("LOGINNAME_STRIP_DOMAIN", true); </code> Note: In this configuration we assume the Zarafa WebAccess is installed on the same server as the Zarafa Storage Server.
Restart the Zarafa-server processes to activate this change.
<code>service zarafa-server restart</code>
Web browser configuration
Before you can use Single Sign On in your browser, configure the following settings:
Firefox
- Type in the addressbar <tt>about:config</tt>
- Filter on <tt>auth</tt>
- Change the options: <tt>network.negotiate-auth.trusted-uris</tt> and <tt>network.negotiate-auth.delegation-uris</tt> to <tt>.testdomain.com</tt>
Internet Explorer
- Go to Tools -> Internet options -> Advanced
- Make sure the option "Enable integrated Windows authentication" is enabled
- Add the url of the Zarafa server (<tt>http://zarafa.testdomain.com</tt>) to your "Local Intranet" sites
Restart your browser and open the Webaccess via the FQDN (<tt>http://zarafa.testdomain.com/webaccess</tt>). If the configuration is done correctly, the user will be logged in to the Webaccess without typing the username and password.