Haut de page

MacOS X Server 10.5 / iCal Server


Généralités

Soit un serveur Open Directory 10.5 (OD), un deuxième serveur CalDAV en 10.5. Configurer les deux serveurs afin que CalDAV server d'agenda avec identification et authentification de l'Open Directory.
Le serveur iCal de MacOS X Server 10.5 est basé sur les standards suivants :


Côté client

Afin de partager des calendriers, la première étape consiste à se connecter à un annuaire

Directory Utility

Utlitaire RépertoireDirectory Utility

Aucun serveur Open Directory configuré

Sur un poste client, dans iCal, au moment de créer un compte, si vous obtenez le message "Aucun serveur Open Directory configuré. Configurez un ou plusieurs serveur Open Directory à l'aide d'Utilitaure d'annuaire ou utilisez une URL de compte explicite.", c'est que vous n'etes pas connecté à un annuaire. (en anglais : No Open Directory servers configured. Confugure one or more Open Directory servers using Directory Utility or use an explicite Accound URL.)

A tester "utilisez une URL de compte explicite" sans connexion Open Directory.

Le nom d'utilisateur «nom_utilisateur» est introuvable

Sur un poste client, dans iCal, au moment de créer un compte, si vous obtenez le message "Le nom d'utilisateur «nom_utilisateur» est introuvable. Aucun nom d'utilisateur correspond n'a été trouvé dans le service d'annuaire. Vérifiez le nom d'utilisateur que vous avez saisi." C'est que le nom ne correspond à personne dans le serveur d'authentification. (en anglais "The username 'user_name' was not found. No Matching username was found on the directory service. Double check your username.")

Le nom d'utilisateur «nom_utilisateur» ne possède aucun nom principal configuré

Le nom d'utilisateur «nom_utilisateur» ne possède aucun nom principal configuré. Confirmez auprès de votre administrateur réseau que votre compte a au moins un nom principal CalDAV configuré. Cela peut être une erreur de mot de passe.

(en anglais: The username 'user_name' has no configured principals. Confirm with your network administrator that your account has at least on CalDAV principal configured.)

Les données du compte sont introuvables

  1. Sur un poste client, dans iCal, au moment de créer un compte, si vous obtenez le message "Les données du compte sont introuvables. La requête sur NOM_serveur à échoué au bout de 30 secondes." : Le port TCP 8443 n'est pas ouvert sur le serveur d'agenda.
    (en anglais: Account information not found. Request to nom_server failed after trying for 30 seconds.)
  2. Sur un poste client, dans iCal, au moment de créer un compte, si vous obtenez le message "Les données du compte sont introuvables. L'accès à https://nom_serveur:8443:principals/users/Nom_Utilisateur/ n'est pas autorisé."
    (en anglais: Account information not found. Access to https://nom_serveur:8443:principals/users/Nom_Utilisateur/ is not permitted.)
  3. Sur un poste client, dans iCal, au moment de créer un compte, si vous obtenez le message "Les données du compte sont introuvables. Une errue inattendue s'est produite lors de la définition du nom sécurisé (code -9813). Le nom du server Nom_du_serveur est peut-être incorrect."
    (en anglais Account information not found. Unexpected secure name resolution error (code -9813). The server name Nom_du_serveur may be incorrect.
    Côté serveur : [DAVRequest _readStreamEvent]: SecTrustEvaluate failed. Failing with error: Error Domain=NSStreamSocketSSLErrorDomain Code=-9813 "Operation could not be completed. (NSStreamSocketSSLErrorDomain error -9813.)"

Côté serveur il y une erreur : [AMP,client] Could not find the principal resource for user id: Nom_Utilisateur

et avant pour chaque utilisateur :
[-] [caldav-8009] [OpenDirectoryService] Directory (incorrectly) returned a record with no ServicesLocator attribute: Nom_utilisateur

cd /Library/CalendarServer/Documents/
mkdir -p principals/users/ical1
mkdir -p principals/__uids__
mkdir -p calendars/users/ical1
chown -R _calendar:_calendar *
chmod -R o-rx *

Lorsque les deux serveurs sont sur le meme ordinateur, tout fonctionne parfaitement sans meme à avoir à mettre https://nom_serveur:8443:

Dans ce cas, lors de la création du premier utilisateur ici ical2, les répertoire principals, calendar sont automatiquement créés ainsi que le __uids__ ..

Documents/
Documents/calendars/
Documents/calendars/users/
Documents/calendars/users/._ical2
Documents/calendars/users/ical2/
Documents/calendars/users/ical2/._calendar
Documents/calendars/users/ical2/calendar/
Documents/calendars/users/ical2/calendar/.db.sqlite
Documents/calendars/users/ical2/._inbox
Documents/calendars/users/ical2/inbox/
Documents/principals/
Documents/principals/.db.calendaruserproxy
Documents/principals/__uids__/
Documents/principals/__uids__/._D56DE1AE-2B7C-4469-9F90-B3FC391C497C
Documents/principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C/
Documents/principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C/calendar-proxy-read/
Documents/principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C/calendar-proxy-write/
Documents/principals/__uids__/._D56DE1AE-2B7C-4469-9F90-B3FC391C497C#calendar-proxy-read
Documents/principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C#calendar-proxy-read/
Documents/principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C#calendar-proxy-read/calendar-proxy-read/
Documents/principals/__uids__/._D56DE1AE-2B7C-4469-9F90-B3FC391C497C#calendar-proxy-write
Documents/principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C#calendar-proxy-write/
Documents/principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C#calendar-proxy-write/calendar-proxy-write/

access.log

Log opened - server start: [Thu Apr 10 16:26:12 2008].
132.227.104.12 - - [10/Apr/2008:16:29:45 +0200] "PROPFIND /principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C/ HTTP/1.1" 401 141 "-" "DAVKit/2.0 (10.5.2; wrbt) iCal 3.0.2" [5.4 ms]
132.227.104.12 - ical2 [10/Apr/2008:16:29:46 +0200] "PROPFIND /principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C/ HTTP/1.1" 207 1937 "-" "DAVKit/2.0 (10.5.2; wrbt) iCal 3.0.2" [116.0 ms]
132.227.104.12 - - [10/Apr/2008:16:29:46 +0200] "PROPFIND /calendars/users/ical2/inbox/ HTTP/1.1" 401 141 "-" "DAVKit/2.0 (10.5.2; wrbt) iCal 3.0.2" [3.1 ms]
132.227.104.12 - ical2 [10/Apr/2008:16:29:46 +0200] "PROPFIND /calendars/users/ical2/inbox/ HTTP/1.1" 207 342 "-" "DAVKit/2.0 (10.5.2; wrbt) iCal 3.0.2" [35.2 ms]
132.227.104.12 - ical2 [10/Apr/2008:16:29:46 +0200] "PROPFIND /principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C/ HTTP/1.1" 207 1937 "-" "DAVKit/2.0 (10.5.2; wrbt) iCal 3.0.2" [16.4 ms]
132.227.104.12 - ical2 [10/Apr/2008:16:29:46 +0200] "PROPFIND /calendars/users/ical2/ HTTP/1.1" 207 3512 "-" "DAVKit/2.0 (10.5.2; wrbt) iCal 3.0.2" [38.0 ms]
132.227.104.12 - ical2 [10/Apr/2008:16:29:46 +0200] "PROPFIND /calendars/users/ical2/calendar/ HTTP/1.1" 207 780 "-" "DAVKit/2.0 (10.5.2; wrbt) iCal 3.0.2" [28.6 ms]
132.227.104.12 - ical2 [10/Apr/2008:16:29:47 +0200] "PROPFIND /calendars/users/ical2/calendar/ HTTP/1.1" 207 449 "-" "DAVKit/2.0 (10.5.2; wrbt) iCal 3.0.2" [39.8 ms]
132.227.104.12 - ical2 [10/Apr/2008:16:29:47 +0200] "PROPFIND /calendars/users/ical2/inbox/ HTTP/1.1" 207 497 "-" "DAVKit/2.0 (10.5.2; wrbt) iCal 3.0.2" [28.5 ms]
132.227.104.12 - ical2 [10/Apr/2008:16:29:47 +0200] "PROPFIND /calendars/users/ical2/inbox/ HTTP/1.1" 207 452 "-" "DAVKit/2.0 (10.5.2; wrbt) iCal 3.0.2" [29.1 ms]
132.227.104.12 - ical2 [10/Apr/2008:16:30:43 +0200] "PROPPATCH /calendars/users/ical2/inbox/ HTTP/1.1" 207 388 "-" "DAVKit/2.0 (10.5.2; wrbt) iCal 3.0.2" [53.1 ms]
132.227.104.12 - ical2 [10/Apr/2008:16:30:43 +0200] "PROPFIND /principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C/ HTTP/1.1" 207 1188 "-" "DAVKit/2.0 (10.5.2; wrbt) iCal 3.0.2" [23.6 ms]
132.227.104.12 - ical2 [10/Apr/2008:16:30:43 +0200] "PROPFIND /principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C/ HTTP/1.1" 207 321 "-" "DAVKit/2.0 (10.5.2; wrbt) iCal 3.0.2" [11.4 ms]

error.log

2008-04-10 16:29:45+0200 [-] [caldav-8009] [AMP,client] Unauthenticated users not enabled with the 'calendar' SACL
2008-04-10 16:29:45+0200 [-] [caldav-8009] [AMP,client] Provisioning file: <DirectoryPrincipalProvisioningResource: /Library/CalendarServer/Documents/principals>
2008-04-10 16:29:45+0200 [-] [caldav-8009] [AMP,client] Provisioning file: <DirectoryPrincipalUIDProvisioningResource: /Library/CalendarServer/Documents/principals/__uids__>
2008-04-10 16:29:45+0200 [-] [caldav-8009] [AMP,client] "Directory service <SudoDirectoryService '/Search': FilePath('/etc/caldavd/sudoers.plist')> has no GUID; generating service GUID from realm name."
2008-04-10 16:29:45+0200 [-] [caldav-8009] [AMP,client] Provisioning file: (users) ical2
2008-04-10 16:29:45+0200 [-] [caldav-8009] [AMP,client] PROPFIND /principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C/ HTTP/1.1
2008-04-10 16:29:46+0200 [-] [caldav-8009] [-] Provisioning file: <CalendarHomeTypeProvisioningFile: /Library/CalendarServer/Documents/calendars/users>
2008-04-10 16:29:46+0200 [-] [caldav-8009] [-] Provisioning file: <CalendarHomeFile: /Library/CalendarServer/Documents/calendars/users/ical2>
2008-04-10 16:29:46+0200 [-] [caldav-8009] [-] Initializing database /Library/CalendarServer/Documents/calendars/users/ical2/calendar/.db.sqlite
2008-04-10 16:29:46+0200 [-] [caldav-8009] [-] Provisioning file: <ScheduleInboxFile (calendar inbox collection): /Library/CalendarServer/Documents/calendars/users/ical2/inbox>
2008-04-10 16:29:46+0200 [-] [caldav-8009] [AMP,client] Unauthenticated users not enabled with the 'calendar' SACL
2008-04-10 16:29:46+0200 [-] [caldav-8009] [AMP,client] PROPFIND /calendars/users/ical2/inbox/ HTTP/1.1
2008-04-10 16:29:46+0200 [-] [caldav-8009] [-] Provisioning file: (users) ical2 [calendar-proxy-read]
2008-04-10 16:29:46+0200 [-] [caldav-8009] [-] Provisioning file: (users) ical2
2008-04-10 16:29:46+0200 [-] [caldav-8009] [-] Provisioning file: (users) ical2 [calendar-proxy-read]
2008-04-10 16:29:46+0200 [-] [caldav-8009] [-] Initializing database /Library/CalendarServer/Documents/principals/.db.calendaruserproxy
2008-04-10 16:29:46+0200 [-] [caldav-8009] [-] Provisioning file: (users) ical2 [calendar-proxy-write]
2008-04-10 16:29:46+0200 [-] [caldav-8009] [-] Provisioning file: (users) ical2
2008-04-10 16:29:46+0200 [-] [caldav-8009] [-] Provisioning file: (users) ical2 [calendar-proxy-write]
2008-04-10 16:29:46+0200 [-] [caldav-8009] [AMP,client] PROPFIND /principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C/ HTTP/1.1
2008-04-10 16:29:46+0200 [-] [caldav-8009] [AMP,client] PROPFIND /calendars/users/ical2/ HTTP/1.1
2008-04-10 16:29:46+0200 [-] [caldav-8009] [AMP,client] PROPFIND /calendars/users/ical2/calendar/ HTTP/1.1
2008-04-10 16:29:47+0200 [-] [caldav-8009] [AMP,client] PROPFIND /calendars/users/ical2/calendar/ HTTP/1.1
2008-04-10 16:29:47+0200 [-] [caldav-8009] [AMP,client] PROPFIND /calendars/users/ical2/inbox/ HTTP/1.1
2008-04-10 16:29:47+0200 [-] [caldav-8009] [AMP,client] PROPFIND /calendars/users/ical2/inbox/ HTTP/1.1
2008-04-10 16:30:43+0200 [-] [caldav-8010] [-] AMP connection established (HOST:UNIXSocket(None) PEER:UNIXSocket('/var/run/caldavd-pydir.sock'))
2008-04-10 16:30:43+0200 [-] [caldav-8009] [AMP,client] PROPPATCH /calendars/users/ical2/inbox/ HTTP/1.1
2008-04-10 16:30:43+0200 [-] [caldav-8010] [AMP,client] "Directory service <SudoDirectoryService '/Search': FilePath('/etc/caldavd/sudoers.plist')> has no GUID; generating service GUID from realm name."
2008-04-10 16:30:43+0200 [-] [caldav-8010] [AMP,client] PROPFIND /principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C/ HTTP/1.1
2008-04-10 16:30:43+0200 [-] [caldav-8009] [AMP,client] PROPFIND /principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C/ HTTP/1.1

ls -al@ Documents/principals/__uids__/D56DE1AE-2B7C-4469-9F90-B3FC391C497C/calendar-proxy-read/
total 0
drwxr-x--- 2 _calendar _calendar 68 Apr 10 16:29 .
drwxr-x---@ 4 _calendar _calendar 136 Apr 10 16:29 ..
WebDAV:{http:%2F%2Ftwistedmatrix.com%2Fxml_namespace%2Fdav%2Fprivate%2F}record-type 123

cd calendars/users/
mv ical2 ical1

cd principals/__uids__/
mv D56DE1AE-2B7C-4469-9F90-B3FC391C497C 01A16B4C-3AF6-4E8A-A02C-EFD1BA05C2F6
mv D56DE1AE-2B7C-4469-9F90-B3FC391C497C#calendar-proxy-read 01A16B4C-3AF6-4E8A-A02C-EFD1BA05C2F6#calendar-proxy-read
mv D56DE1AE-2B7C-4469-9F90-B3FC391C497C#calendar-proxy-write 01A16B4C-3AF6-4E8A-A02C-EFD1BA05C2F6#calendar-proxy-write

cal1

dsAttrTypeNative:apple-serviceslocator : E552D587-450C-42D9-9C11-94FB53CB0991:3F61A360-86F2-4376-BB5B-EC85B94F8271:calendar


Côté serveur d'authentification

Associer un utilisateur avec un serveur d'agenda

Dans Workgroup Manager créer un utilisateur, dans l'onglet Advanced, cocher la case Enable calendaring et choisir le serveur d'agenda calDAV. Si il n'y a pas de serveur dans la liste, il faut faire le lien depuis le serveur CalDAV.

Dans l'Utilitaire Répertoire, au lieu de voir le nom et le prénom de la personne, on voit le login

C'est que le compte Open Directory a été créé sur une ancienne version du serveur, le champs LastName de la personne est "99" (très ancienne erreur de ServerAdmin). Pour corriger, sur Server Admin, aller dans l'onglet Info de la personne.

Plus exactement, lorsque l'on crée une fiche avec le Gestionnaire de groupe de travail (Workgroup Manager), on remplit le champ Name et WM va automatiquement remplir divers les champs en découpant Name en supposant que la premier mot est le prénom et que le dernier mot est le nom de famille. Si ce n'est pas correct (par exemple si vous avez mis comme moi le nom en premier), il faut cliquer sur l'onglet Info et remplir les rubriques.

Listes des rubriques du gestionnaire de groupe de travail (WM) et correspondance LDAP.

Rubrique WM rubrique LDAP Commentaire
Name (onglet Basic) RealName
User ID uniqueID
Short Names RecordName et uid RecordName contient aussi le nom complet. Il est utilisé aussi pour les alias de mail
Name (onglet Info) Prénom puis Nom givenName et sn Il y a deux champs, le premier Prénom et le deuxième Nom de famille
Address (Street)
Address (City)
Address (State / Province)
Address (Zip)
Address (Country)
Phone
Email mail à vérifier
Chat apple-imhandle exemple JABBER:login@{FQDN}
Homepage
Weblog
calendaring apple-serviceslocator GeneratedUID du serveur d'agenda:adresse-Hexa:calendar


Côté serveur d'agenda

Les données des agendas sont stockées par défault dans le répertoire /Library/CalendarServer/Documents dont le propriétaire et le groupe sont _calendar ou calendar (c'est le même) (uid et gid 93). La connexion SSL se fait sur le port 8443.

Le répertoire où sont stockés les calendriers contient :

/Library/CalendarServer/Documents
# ls -al@
drwxr-x---@ 2 _calendar _calendar 68 Oct 4 2007 .
WebDAV:{DAV:}acl 136
drwxrwxr-x 3 root admin 102 Oct 4 2007 ..

puis

Localisation Contenu Commentaire
principles/<users | groups > Dossiers des tous les utilisateurs autorisés à utiliser les calendriers et qui se sont connectés
principles/<resources | locations> Dossiers de toutes les ressources ou salles avec des calendriers
principles/sudoers Dossiers de tous les administrateurs de calendriers pas vu
principals/__uids__ Dossiers de tous les utilisateurs, groupes, ressources ou salles qui utilisent un directory-record comme nom d'identification
principles/<users | groups>/<username> Ressource http qui représente le calendriers de la personne ou du groupe
principles/<users | groups>/<username>/calendar-proxy-read
principles/<users | groups>/<username>/calendar-proxy-write
Identifie le 'principal' utilisé pour fournir les droits de délégation pour les autres.
calendars/<users | groups> Dossiers de chaque utilisateur ou groupe qui a créé au moins un calendrier, un événement ou un 'todo'.
calendars/<resources | locations> Dossiers de cahque ressource ou salle qui a accepté au moins un calendrier, un événement ou un 'todo'.
calendars/<users | groups | resources | locations>/<name>/calendar Contains iCalendar (.ics) files of each event in the principle’s calendar.
calendars/<users | groups | resources | locations>/<name>/inbox Contains iTIP file invitations to other user’s pending events.
calendars/<users | groups | resources | locations>/<name>/outbox Contains iTip file invitations waiting to be distributed to invitees.
calendars/<users | groups | resources | locations>/<name>/dropbox Contains files attached to events, either from a user’s self-created event or from participant events.

Les process suivants sont en attente.

root a lancé :

Python /usr/share/caldavd/bin/twistd -n caldav
Python /usr/share/caldavd/bin/pydir.py /tmp/pydKHe7

agenda est propriétaire de 8 process de type :

Python /usr/share/caldavd/bin/twistd -u calendar -g calendar -n caldav -f /etc/caldavd/caldavd.plist -o ProcessType=Slave -o BindAddresses=127.0.0.1 -o PIDFile=None -o ErrorLogFile=None -o MultiProcess/ProcessCount=8 -o BindHTTPPorts=8009 -o BindSSLPorts=8444
Python /usr/share/caldavd/bin/twistd -u calendar -g calendar -n caldav -f /etc/caldavd/caldavd.plist -o ProcessType=Slave -o BindAddresses=127.0.0.1 -o PIDFile=None -o ErrorLogFile=None -o MultiProcess/ProcessCount=8 -o BindHTTPPorts=8010 -o BindSSLPorts=8445

Le fichier /etc/caldavd/sudoers.plist contient par défault

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>users</key>
<array>
<dict>
<key>password</key>
<string>mot-de-passe-codé</string>
<key>username</key>
<string>wikiserver</string>
</dict>
</array>
</dict>
</plist>

Pas de lien entre les serveurs CalDAV et OD.

Dans Workgroup Manager de l'Open Directory, No Calendar Host Selected

Sur le serveur OD, la liste des serveurs de calendriers est vide dans Enable calendaring (onglet Advanced) en sélectionnant un utilisateur.

Sur une machine qui fonctionne :

guid 500 : com.apple.monitor_calendar

Sur le serveur CalDAV, No Virtual host found for iCal service

Au moment de l'activation du service iCal, message : No Virtual host found for iCal service

Solution : Sur le serveur CalDAV, ouvrir l'utilitaire d'annuaire (Diretory Utility),

Voir aussi

Mars/avril 2008. Page élaborée en collaboration avec Jean-Baptiste Voron.



FutureShare

 | 

Glossaire

 |