CardDAV

Nachdem ich CalDAV zur Synchronisierung von Kalendern schon einige Zeit im Einsatz habe, stolperte ich erst kürzlich über das Adressbuch-Pendant CardDAV. Das Protokoll – ein weiteres der DAV Familie – ist erst im Request For Comments Status, aber dieser ist quasi schon abgeschlossen.
Interessant wurde CardDAV für mich als ich hörte, dass Davical – der CalDAV Server den ich einsetze – seit einiger Zeit (Version 0.9.9.4) auch CardDAV vollständig beherrscht.

Und was gibt es schöneres als synchronisierte Adressdaten?

Ich muss noch dazusagen, dass ich immer noch einen openLDAP Adressserver laufen habe, welcher aber an 2 Krankheiten leidet (und das schon seit Jahren)

  1. Es gibt kein verbindliches Personenschema für die Applikationen (Mozilla verwendet ein anderes als Apple.. und das wiederum hat nichts gemeinsam mit anderen Welten der kommerziellen LDAP Server)
  2. Schreibunterstützung: nada – am besten man programmiert sich seinen eigenen LDAP Client – aber da der Tag nur 24h hat…

Ok – genug geschwafelt: CardDAV rocks – es geht alles

..aber nur nach stundenlanger Frickelei (es lohnt sich aber, also dranbleiben).

  1. Davical updaten, falls nicht schon geschehen. Folgende Stolperfallen warten:
    Ev. sind die User davical_app und davical_dba noch nicht angelegt (kommt bei sehr alter davicaldb vor). In diesem Fall mit
    psql -qXAt -c "CREATE USER davical_app NOCREATEDB NOCREATEROLE;" template1
    psql -qXAt -c "CREATE USER davical_dba NOCREATEDB NOCREATEROLE;" template1
    die User anlegen.
    Einige Sequenzen und Tables gehören ev. direkt postgres anstatt davical_dba – mit folgendem Befehl wird bspw. hier die Sequenz dav_id_seq geändert:
    psql davical -c "ALTER SEQUENCE dav_id_seq OWNER TO davical_dba"
  2. Das Anlegen einer neuen Collection (Principal Collection) ist ganz einfach.
    In der neugestalteten Webseite einfach Ist ein Kalender ab- und Ist ein Adressbuch anhacken. Der Name der Collection ist natürlich wählbar – es empfiehlt sich z.B. „contacts

    Konkret ist dann diese Kollektion (das Adressbuch) unter /davical/caldav.php/USERNAME/contacts
    auf dem Server zu erreichen.

  3. Mac OS X Adressbuch anschliessen
    Oh ja – wenn man mittels SSL drauzugreift, dann gibts Probleme.
    Im der Applikation Adressbuch kann man zwar ein CardDAV Account anlegen bei dem man die Authorisierungsdaten und den kompletten Serverpfad (s.o.) eingeben kann, man läuft aber immer auf eine Fehlermeldung hinaus.
    Die Lösung ist, zweimal „Create“ anzuklicken um den fehlerhaften Account anzulegen.

    Dann editiert man manuell folgende Datei:

    ~/Library/Application Support/AddressBook/Sources/<UNIQUE-ID>/Configuration.plist
    Dort trägt man unter Server String die komplette URL ein.
    https://SERVERNAME/davical/caldav.php/USERNAME/contacts
    Am besten modifiziert man noch das Feld HaveWriteAccess auf den Wert auf „1“

  4. iPhone Konfigurieren
    Das geht im Falle eines SSL Zugriffes NICHT am Handy selber. Es geht nur über das iPhone Configuration Utility welches man von Apple herunterladen muss.
    Dort erstellt man einen neues Konfigurationsprofil mit einem CardDAV Account und installiert dieses dann auf dem angeschlossenen iPhone (es beeinträchtigt ein ev. vorhandenes Profil nicht!)
    Das Konfigurationsprofil innerhalb dieses Programmes erlaubt die komplette Angabe einer URL (Principal URL).
  5. KDE / akonadi
    Unglaublich – es geht einfach – man muss nur erstmal draufkommen wie.
    In den KDE Systemeinstellungen kann man bei
    Persönliche Informationen -> Einrichtung der Akonadi Resourcen -> GroupDAV Resourcen
    u.a. CardDAV und CalDAV Anschlüsse einrichten, welche dann von allen akonadi-aware Programmen (wie KMail oder Adressbook) genutzt werden kann.

Was noch fehlt ist ein nativer Thunderbird CardDAV Anschluss, es soll über ein 3rd Party Produkt names SoGo gehen.. aber ich sehe grade keinen Grund es auszuprobieren. Stattdessen geniesse ich mit CardDAV eine weitere Perle der OpenSource Welt.

8 Gedanken zu „CardDAV“

  1. Der aktuelle SoGo Connector 10.0.3 funktioniert sehr gut mit Thunderbird. Konzipiert ist das Add-on eigentlich für Thunderbird 10 ESR (Enterprise Release) – funktioniert bei mir aber auch mit den aktuellen Versionen 14 und 15.

    Nach der Installation des Add-Ons muß man in Thunderbird ins Adressbuch gehen und mit
    Neu -> Remote Adressbuch
    die Verbindung zum CardDAV Adressbuch herstellen. Auch die Schreibunterstützung funktioniert. Ob Felder (Einträge) anderer Hersteller (v.a. Apple) in einem Adresssatz überschrieben werden, kann ich noch nicht sagen… erfahrungsgemäß ist aber die Gefahr umso größer, je esoterischer ein Feld ist.

    1. Hey Harald! Ich versuche schon seit langem meinen Adressbuch Server unter Mac OS X Server 10.8.6 über sogo mit meinen Remote CLients zu verbinden, kriege das aber nicht gebacken. Könntest du vielleicht Konfiguration ein bisschen näher beschreiben? Was muss ich außer Port-Freigaben von Seite des Servers beachten? Welche URL ist die bei Thunderbird eintragen muss? Wie melde ich mich unter einen bestimmten Benutzer ein (Login, Password). Ist eine SSL Verbindung möglich.. etc, etc. Ich glaube du verstehst was ich meine. Falls ich was vergessen haben, einfach bescheid geben.

      1. Hi,

        Naja, ich weiß natürlich nicht in wie weit sich der Mac OS X CardDAV Serverdienst von davical unterscheidet.

        Bei mir läuft davical mit SSL, d.h. die Firewall darf den normalen HTTPS Port 443 nicht blockieren. Die Kontakte innerhalb von davical sind nur eine weitere Resource, sie ändern an der Konfiguration serverseitig nichts. Man braucht weiterhin einen lauffähigen Apache2 Server mit DAV Erweiterungen.
        Die Benutzereinrichtung ist natürlich start serverabhängig. Das dürfte bei davical anders sein, als bei den Mac OS X Serverdiensten.

        In Thunderbird selber (Version 10 oder höher) klickt man auf „Adressbuch“, legt dort ein neues Remote-Adressbuch (Neu->Remote Adressbuch) an und spezifiziert folgende Adresse (gleich wie beim Mac OS X Adressbuch) – bei mir lautet die: https://SERVERNAME/davical/caldav.php/USERNAME/contacts

        Beim ersten Kontaktieren, kommt dann die User- und Passwortabfrage – danach dauert es aber relativ lange, bis die Daten synchronisiert sind. Wenn du dir nicht sicher bist ob was passiert schau einfach im Apache2 Log nach (access_log und error_log), da stehen ja die Verbindungsanfragen drin.

        Hoffe das hilft dir wenigstens ein bischen weiter

  2. Hallo, ich habe mal versucht den Workaround nachzuvollziehen, finde allerdings diese Datei nicht:

    ~/Library/Application Support/AddressBook/Sources/UNIQUE-ID/Configuration.plist
    Stattdessen sehe ich
    ~/Library/Application Support/AddressBook/Sources/34E3DFE5-1005-45C5-8BA3-0EDE9A3A7EE0/
    und zwar

    Kann das jemand nachvollziehen?

  3. Hi Sascha,

    mit der UNIQUE-ID meinte ich natürlich eine auf jedem System anderslautende einzigartige ID, bei dir eben „34E3D…..“
    Ich habe jetzt UNIQUE-ID mit spitzen Klammern versehen, so dass es eventuell verständlicher ist.

    Gruß,
    Harald

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.