Moduł 5 · 5.1
CalDAV i CardDAV: jak synchronizować kalendarz i kontakty
Moduł 5: Kalendarz i kontakty · Czas czytania: 10 minut
Cel lekcji: Po tej lekcji będą Państwo potrafili wyjaśnić, w jaki sposób CalDAV i CardDAV utrzymują spójność kalendarza i kontaktów między serwerem a urządzeniami, dlaczego zauważają to Państwo dopiero przy konfigurowaniu aplikacji oraz jakie dane są potrzebne, aby połączyć aplikację z serwerem.
Kluczowe pojęcia: CalDAV, CardDAV, WebDAV, synchronizacja, adres serwera, .well-known/caldav, .well-known/carddav, principal, hasło aplikacji, Exchange ActiveSync, kalendarz domyślny
Kalendarz i kontakty mieszkają na serwerze
W przypadku Google i Microsoft nie zauważają Państwo, w jaki sposób kalendarz trafia na telefon. Logują się Państwo na swoje konto i kalendarz oraz kontakty po prostu tam są. Za kulisami używają do tego zwykle własnego sposobu synchronizacji: Microsoft wykorzystuje Exchange ActiveSync i własne mechanizmy integracji, Google własną synchronizację kont na Androidzie.
U europejskiego dostawcy odbywa się to niemal zawsze za pomocą dwóch otwartych standardów:
- CalDAV (RFC 4791) dla kalendarzy i list zadań;
- CardDAV (RFC 6352) dla kontaktów.
Oba standardy bazują na WebDAV, rozszerzeniu zwykłego ruchu internetowego (HTTPS), które pozwala odczytywać i zapisywać pliki na serwerze. Spotkanie jest dla CalDAV małym plikiem w formacie iCalendar (lekcja 5.2), kontakt małym plikiem w formacie vCard. Serwer przechowuje te pliki w folderze dla każdego kalendarza lub książki adresowej. Telefon, laptop i kalendarz internetowy co kilka minut pytają: "co się zmieniło od ostatniego razu?" i pobierają tylko zmiany.
iPhone <--CalDAV/HTTPS--> server: /calendars/anne/werk/ <--CalDAV--> laptop (Thunderbird)
^
|
webagenda in de browserWielką zaletą otwartego standardu jest to, że nie są Państwo związani z jedną aplikacją. Aplikacja Kalendarz w iPhonie, DAVx5 na Androidzie, Thunderbird, Kalendarz na Macu i wiele innych aplikacji obsługują CalDAV. Jeśli w przyszłości przejdą Państwo do innego dostawcy, który również obsługuje CalDAV, wystarczy ponownie skonfigurować te same aplikacje.
Dlaczego nie widać tego, dopóki nie skonfigurują Państwo aplikacji
Po przeniesieniu kalendarza (lekcja 5.2 i 5.3) wszystko jest uporządkowane w kalendarzu internetowym Państwa nowej usługi. Telefon jeszcze nic o tym nie wie. Żadna aplikacja nie pojawi się sama: na każdym urządzeniu trzeba dodać konto. Potrzebują Państwo do tego trzech rzeczy:
| Dane | Przykład dla Piekarni De Korrel |
|---|---|
| Adres serwera | https://cloud.example.com lub pełny adres DAV, na przykład https://cloud.example.com/remote.php/dav |
| Nazwa użytkownika | anne |
| Hasło | hasło aplikacji, patrz poniżej |
Adres serwera i .well-known
Każda usługa ma własną ścieżkę, pod którą znajdują się CalDAV i CardDAV. W Nextcloud jest to /remote.php/dav, na innych serwerach bywa inaczej. Aby uniknąć konieczności znajomości tej ścieżki przez każdego, istnieje ustalona zasada (RFC 6764): aplikacja, która otrzymuje tylko nazwę domeny, najpierw sprawdza ustalone miejsce:
https://cloud.example.com/.well-known/caldav
https://cloud.example.com/.well-known/carddavSerwer odpowiada tam przekierowaniem do rzeczywistej ścieżki. Jeśli to przekierowanie działa poprawnie, w iPhonie wystarczy wpisać samo cloud.example.com. Jeśli nie działa, aplikacja zgłosi "nie można zweryfikować konta" i trzeba będzie wpisać pełny adres. Ten sam dokument RFC opisuje również rekordy SRV (_caldavs._tcp.example.com), dzięki którym aplikacja może znaleźć serwer na podstawie domeny e-mail. Nie każda aplikacja z tego korzysta.
Następnie aplikacja pyta serwer o Państwa principal: stałe miejsce Państwa konta na serwerze, zawierające listę Państwa kalendarzy i książek adresowych. Dzięki temu aplikacja automatycznie znajduje wszystkie kalendarze, również te udostępnione Państwu przez inne osoby.
Dlaczego potrzebne jest hasło aplikacji
Większość europejskich usług chmurowych przy logowaniu w przeglądarce wymaga drugiego kroku: kodu przesłanego e-mailem, aplikacji uwierzytelniającej lub klucza passkey. Aplikacja kalendarza na telefonie nie potrafi wykonać tego drugiego kroku. Ma tylko pole na nazwę użytkownika i hasło.
Dlatego dla takiej aplikacji tworzą Państwo hasło aplikacji: długie, losowe hasło, które obowiązuje wyłącznie dla tej jednej aplikacji. Tworzy się je w ustawieniach bezpieczeństwa swojej chmury, nadaje mu się rozpoznawalną nazwę ("Kalendarz iPhone Anna") i wpisuje w aplikacji.
Zalety:
- Prawdziwe hasło nie jest przechowywane na telefonie.
- Jeśli zgubią Państwo telefon, wystarczy unieważnić tylko to jedno hasło aplikacji; reszta nadal będzie działać.
- Jeśli zmienią Państwo zwykłe hasło, aplikacje będą nadal działać.
Niektóre aplikacje potrafią też logować się przez przeglądarkę: otwierają ekran logowania Państwa chmury, wykonują Państwo tam drugi krok, a aplikacja sama otrzymuje hasło aplikacji. DAVx5 na Androidzie potrafi to zrobić na przykład z Nextcloud.
Najbardziej znany komunikat błędu w aplikacjach kalendarza to 401 Unauthorized. Niemal zawsze oznacza to: użyli Państwo zwykłego hasła zamiast hasła aplikacji, albo hasło aplikacji zostało unieważnione.
Kalendarze Exchange i co tracą Państwo przy zmianie
Osoby przechodzące z Microsoft 365 są przyzwyczajone do kilku rzeczy, które w CalDAV działają inaczej lub wcale:
- Widoczność dostępności współpracowników przy planowaniu. Nextcloud i inne serwery CalDAV mają własną formę tej funkcji (dostępność w obrębie tego samego serwera), ale nie działa ona między różnymi usługami i nie zawsze w każdej aplikacji.
- Rezerwowanie sal i sprzętu (sala konferencyjna, projektor). Niektóre serwery mają kalendarze zasobów, inne nie.
- Dostęp delegowany ("sekretarka zarządza kalendarzem dyrektora"). W CalDAV reguluje się to przez udostępnianie z prawami do edycji.
Proszę umieścić to na swojej liście (moduł 3). Rzadko jest to powód, by nie zmieniać dostawcy, ale współpracownicy muszą o tym wiedzieć wcześniej.
W praktyce: jak to wygląda u dostawcy
W Nextcloud od WebOké adresy znajdą Państwo w aplikacji Kalendarz, w lewym dolnym rogu przy Ustawienia Kalendarza: CalDAV URL oraz Adres serwera dla iOS i macOS, każdy z przyciskiem kopiowania. Ogólny adres to https://<Państwa-adres>/remote.php/dav. Hasło aplikacji tworzy się w Ustawienia, Bezpieczeństwo, Urządzenia i sesje. Tam widać też później, które urządzenie i kiedy ostatnio się łączyło, i tam można unieważnić hasło aplikacji. Inni dostawcy Nextcloud działają dokładnie tak samo; u innych europejskich usług (na przykład mailbox.org, Posteo lub środowisko Open-Xchange) adres CalDAV znajduje się na stronach pomocy lub w ustawieniach, a hasła aplikacji nazywane są czasem "hasłem urządzenia" lub "hasłem aplikacji".
Podsumowanie
- CalDAV (kalendarz, zadania) i CardDAV (kontakty) to otwarte standardy oparte na WebDAV i HTTPS; każda zmiana to mały plik na serwerze.
- Na każdym urządzeniu trzeba samodzielnie dodać konto: adres serwera, nazwę użytkownika i hasło aplikacji.
- Dzięki
.well-known/caldavi.well-known/carddavaplikacja znajduje rzeczywistą ścieżkę na podstawie samej nazwy domeny; jeśli to nie zadziała, należy wpisać pełny adres DAV. - Hasło aplikacji jest potrzebne, ponieważ aplikacje kalendarza nie potrafią wykonać drugiego kroku logowania; komunikat 401 niemal zawsze oznacza błędne hasło.
- Funkcje Exchange, takie jak dostępność między współpracownikami, rezerwacja sal i delegowanie, działają inaczej; proszę umieścić je na swojej liście.
Quiz
Zadanie
Zadanie A5.1: Czy aplikacja znajduje Państwa kalendarz? Proszę wpisać adres swojej (nowej) chmury, na przykład cloud.example.com. Program sprawdzi, czy /.well-known/caldav i /.well-known/carddav poprawnie przekierowują do ścieżki DAV oraz czy serwer odpowiada tam jako serwer DAV. Dzięki temu dowiedzą się Państwo, czy na telefonie wystarczy wpisać samą nazwę domeny.
Dalsza lektura
Kroki opisane w tych artykułach dotyczą usług WebOké; u innych dostawców działa to w podobny sposób.
- Podręcznik Nextcloud 3.5: Hasła aplikacji: kiedy i jak ich używać
- Podręcznik Nextcloud 9.9: Kalendarz i kontakty na iPhonie i iPadzie
- Podręcznik Nextcloud 9.10: Kalendarz i kontakty na Androidzie za pomocą DAVx5
- Podręcznik Nextcloud 15.6: Kalendarz lub kontakty nie pojawiają się na telefonie
- Tworzenie hasła aplikacji (potrzebnego do połączenia z aplikacjami i urządzeniami)
- RFC 4791 (CalDAV), RFC 6352 (CardDAV), RFC 4918 (WebDAV), RFC 6764 (.well-known i SRV dla CalDAV i CardDAV)
