Z-Push Benutzer mittels LDAP begrenzen (ohne Code Modifikation)

Mit Zarafa 7.1 wurde das LDAP Attribut  “zarafaenabledfeatures” eingeführt, welches mit wenigen Handgriffen ebenfalls zur Steuerung von Z-Push Accounts genutzt werden kann. Der Vorteil an dem im folgenden aufgezeigten Weg liegt darin, dass hierfür keine Modifikationen am Z-Push Code vorgenommen werden müssen und somit zukünftige Updates erleichtert werden.

“zarafaenabledfeatures” ist ein Freitextfeld welches einen beliebigen String (wie eben “imap” oder “pop3″) aufnehmen kann. Dies erlaubt ohne großen Aufwand weitere Filtermerkmale wie z.B. “z-push” zu definieren und bei entsprechenden Nutzern zu hinterlegen.

Sobald dieser Wert für alle gewünschten Nutzer hinterlegt ist, können wir mit der Modifikation der Apache Konfiguration fortfahren.

Bei direktem Aufruf von http://server/Microsoft-Server-ActiveSync werden wir von einem Apache Authentifizierungsdialog begrüßt, welcher über den Z-Push Code getriggert wird. Diesen Umstand können wir zu unserem Vorteil nutzen, indem wir - bereits bevor der Dialog durch Z-Push getriggert wird - im Apache eine Authentifizierung durchführen lassen. Dies funktioniert da eine einmal durchgeführte Anmeldung in der Session gespeichert wird und an die dahinter liegende Applikation “durchgereicht” wird (funktioniert z.B. auch mit ownCloud).

Um den Apache Webserver einen LDAP Baum zur Authentifizierung nutzen zu lassen sind dann nur noch die folgenden zwei Änderungen nötig:

  1. mod_authnz_ldap aktivieren, dies geht z.B. mittels “a2enmod authnz_ldap”
  2. den folgenden Code Block innerhalb der Directory Sektion im Z-Push vHost einfügen (und natürlich an die eigene Umgebung anpassen):

Der Entscheidende Punkt dieser Ergänzung liegt in AuthLDAPURL. Diese  definiert:

  • wo das LDAP läuft
  • wie die Basis DN lautet
  • wie das Login Attribut heißt
  • und welcher Filter angewendet werden soll.

Das Apache Handbuch definiert die Syntax wie folgt: ldap://host:port/basedn?attribute?scope?filter. Die oben genannte Beispielsyntax nutzt also das Attribut uid als Benutzername und sollte dieser Benutzer die Objectklasse zarafa-user und das Attribut zarafaEnabledFeatures mit dem Wert z-push ist die Anmeldung erfolgreich. In allen anderen Fällen wird die Anmeldung abgeleht.

Synology NAS bei Nichtgebrauch herunterfahren

Nachdem ich lange mit mir gekämpft habe, war es im letzten Monat nun endlich soweit und ich habe mir ein Synology NAS gekauft. Zwar bietet Synology hier die Möglichkeit, sowohl die Festplatten als auch das NAS selbst, bei Inaktivität in einen Standby-artigen Zustand zu versetzen (Deep Sleep), dennoch finde ich es wenig sinnvoll das Gerät laufen zulassen, wenn kein Zugriff zu erwarten ist.

Weiterlesen

Blog Quickie: Zarafa CalDAV Gateway über Port 443

Falls man das Zarafa CalDAV Gateway (per SSL) aus dem Internet erreichen will, hierfür aber keinen weiteren Port in der Firewall öffnen will, so hilft folgende Erweiterung der Apache Konfiguration:

Dieser Teil kann einfach z.B. ans Ende der ensprechenden VirtualHost Definition kopiert werden. Da die Zarafa CalDAV Implementierung glücklicherweise alle URLs mit “/caldav” fixiert – eine gültige Adresse wäre z.B. http://server:8080/caldav/<user>/<calendar-name> - sind auch keine weiteren Umschreibungen per mod_rewrite nötig.

Nun kann der Kalender einfach über https://server/caldav/<user>/<calendar-name> abgefragt werden.