[commits] [Wiki] changed: ExternalClientsHowTo

Jan Schneider jan at horde.org
Mon Nov 11 12:48:23 UTC 2013


jan  Mon, 11 Nov 2013 12:48:23 +0000

Modified page: http://wiki.horde.org/ExternalClientsHowTo
New Revision:  8
Change log:  Update current state

@@ -1,27 +1,31 @@
  + Using external groupware (PIM) clients with Horde

-There are several ways to access Horde applications or backends with  
external clients. These options can be summerized into two groups.  
Either both Horde and the external applications access the same shared  
backends as clients. Alternatively Horde can act as a backend server  
itself, that can be used by external clients.
+There are several ways to access Horde applications or backends with  
external clients. These options can be summerized into two groups.  
Either both Horde and the external applications access the same shared  
backends as clients. Alternatively Horde can act as a backend server  
itself, that can be used by external clients through  
((Synchronization)).

  ++ Shared backends

  +++ Kolab server

-A [http://www.kolab.org Kolab] server is probably the most complete  
groupware solution with a shared backend server. Kolab is basically a  
stack of proven open source server systems that build a complete  
groupware server including web based management and wide range of  
supported clients. Horde is the officially supported  
((KolabHowTo|browser frontend for Kolab)) and supports all groupware  
features. There exist several clients for various platforms with  
native Kolab support, as well as connectors for existing groupware  
clients like **[http://office.microsoft.com/en-us/outlook/ Outlook]**  
or **[http://www.mozilla.com/en-US/thunderbird/ Thunderbird]**.
+A [http://www.kolab.org Kolab] server is probably the most complete  
groupware solution with a shared backend server. Kolab is basically a  
stack of proven open source server systems that build a complete  
groupware server including web based management and wide range of  
supported clients. Horde is the officially supported  
((KolabHowTo|browser frontend for Kolab 2)) and supports all groupware  
features. There exist several clients for various platforms with  
native Kolab support, as well as connectors for existing groupware  
clients like **[http://office.microsoft.com/en-us/outlook/ Outlook]**  
or **[http://www.mozilla.com/en-US/thunderbird/ Thunderbird]**.

  +++ Homebrew servers

-Kolab is probably the most comfortable way to install a groupware  
server for Horde. But if you already have some servers running that  
support open standards, chances are that you can access them with  
Horde applications. Horde applications support a wide range of  
protocols like IMAP, LDAP, IMSP and SQL. Due to the modular,  
driver-based architecture of the Horde Framework, you can even write  
your own drivers for backends that are currently not yet supported.  
Using Kronolith as frontend for a !CalDAV server would be such  
possible driver.
+Kolab is probably the most comfortable way to install a groupware  
server for Horde. But if you already have some servers running that  
support open standards, chances are that you can access them with  
Horde applications. Horde applications support a wide range of  
protocols like IMAP, LDAP, CalDAV, IMSP and SQL. Due to the modular,  
driver-based architecture of the Horde Framework, you can even write  
your own drivers for backends that are currently not yet supported.

  ++ Horde as a backend

-+++ !SyncML
++++ SyncML

-SyncML is not really an access protocol, but a synchronization  
protocol. SyncML is already built into many **mobile devices** like  
**mobile phones**, and there exist many clients for mobile devices and  
**desktop applications**, most notably by [http://www.funambol.com/  
Funambol] and [http://www.synthesis.ch/ Synthesis]. SyncML not used to  
access the live groupware data from the clients and manipulate them  
directly on the client, but to keep several copies of the same data  
synchronized with a push on a button.
+SyncML is not really an access protocol, but a synchronization  
protocol. SyncML was already built into many **mobile devices** like  
**mobile phones**, and there exist many clients for mobile devices and  
**desktop applications**, most notably by [http://www.funambol.com/  
Funambol] and [http://www.synthesis.ch/ Synthesis]. SyncML not used to  
access the live groupware data from the clients and manipulate them  
directly on the client, but to keep several copies of the same data  
synchronized with a push on a button. The usage of SyncML is fading  
out and being replaced by the ActiveSync protocol.

-+++ !WebDAV/!GroupDAV/!CalDAV/iCalendar
++++ ActiveSync

-Horde has a basic [http://www.webdav.org/ WebDAV] interface that can  
be accessed by external clients like  
**[http://www.mozilla.com/en-US/thunderbird/ Thunderbird]**,  
**[http://www.kontact.org/ Kontact]**, or  
**[http://www.apple.com/ical/ Apple iCal]**. This interface is going  
to be the basis for more advanced [http://www.groupdav.org/ GroupDAV]  
and/or [http://ietf.osafoundation.org/caldav/ CalDAV] interfaces.  
These are standards which allow more complex access to groupware data  
and scale better than plain !WebDAV. Even in older versions of  
Kronolith and Nag exist HTTP interfaces with can be used by !WebDAV  
compatible clients to connect to calendars and task lists, though  
limited to read-only access.
+The ActiveSync protocol provides over the air synchronization of  
contacts, calendar, task, notes, and email to devices supporting  
Exchange ActiveSync such as the iOS, Android, and Windows Mobile.
+
++++ WebDAV (iCalendar/ICS)/!GroupDAV/CalDAV/CardDAV
+
+Horde has [http://www.webdav.org/ WebDAV], CalDAV and CardDAV  
interfaces that can be accessed by external clients like  
**[http://www.mozilla.com/en-US/thunderbird/ Thunderbird]**,  
**[http://www.kontact.org/ Kontact]**, or  
**[http://www.apple.com/ical/ Apple iCal]** or mobile devices like iOS  
or Android phones. The latter are standards which allow more complex  
access to groupware data and scale better than plain WebDAV. Support  
for [http://www.groupdav.org/ GroupDAV] doesn't exist yet, because  
this protocol has never grown popular.

  +++ XML-RPC

  Several generic RPC interfaces exist in Horde, at the time of this  
writing XML-RPC, SOAP, and JSON. These can be used to access the  
external API of Horde and its applications and are rather targeted at  
developers. But there exists a ((PhpgwHowTo|wrapper around the XML-RPC  
interface)) that is compatible to the RPC interface of  
**[http://www.phpgroupware.org/  
phpGroupWare]/[http://www.egroupware.org/ eGroupWare]**. At least one  
client **(Kontact)** supports this interface. It hasn't been tested  
much though.
@@ -29,7 +33,5 @@
  Of course you can combine any of the scenarios mentioned here. You  
could use Horde as a frontend for a Kolab server and as a SyncML  
server for your **PDAs** and **phones** at the same time. Or you can  
use the Kolab server as a groupware backend, but add more address  
books from your company's LDAP or Active Directory servers, etc.

  +++ Authentication Caveats

-The above methods all use the rpc.php entry point to horde, which in  
most cases uses basic HTTP authentication to authorize access. This  
may not work out of the box when PHP is run in CGI mode. Please see  
HTTPAuthHowTo for a workaround.
-
-If you have configured Horde to use Shibboleth as an authentication  
method then the RPC interface will fail as Horde will have no means to  
authenticate the user with the supplied HTTP authentication  
credentials (no _authenticate method in the Shibboleth driver).  
Shibboleth is designed for web browser based applications and hides  
the authentication part from Horde, providing just a trusted session  
and attribute data about the externally authenticated user.
+If you have configured Horde to use Shibboleth or some other  
transparent authentication method then the RPC interface will fail as  
Horde will have no means to authenticate the user with the supplied  
HTTP authentication credentials. Most of these authentication drivers  
are designed for web browser based applications and hide the  
authentication part from Horde, providing just a trusted session and  
attribute data about the externally authenticated user.



More information about the commits mailing list