Я ищу способ поделиться календарем для разных платформ через сервер Linux Debian, на котором работает Apache 2.2.16 с WebDAV (mod_dav, mod_dav_fs) поддержка.
Пока что использую для базовой аутентификации каталогов. Проблема в том, что единственное программное обеспечение, поддерживающее этот метод аутентификации, - это Thunderbird с Молнии добавить. Ни Outlook, ни другие веб-календари не могут получить доступ.
Настройка аутентификации Apache выглядит так:
<Directory "/var/www/calendar/">
Dav on
ForceType text/plain
Require user test
Options +Indexes
AuthType Basic
AuthName "WebDAV"
AuthUserFile /etc/apache2/htpasswd/calendar.htpasswd
require valid-user
</Directory>
Как я могу защитить WebDAV с помощью надлежащей аутентификации и обеспечить поддержку различного программного обеспечения?
Единственный способ, который я нашел, - это использовать не аутентификацию, а длинный URL-адрес, содержащий случайный хеш, например:
https://example.org/somepath/calendarname-averylonghashtoavoidpiracy.ics
Это похоже на «частные URL-адреса», используемые Календарем Google или Dropbox при совместном использовании. Не идеально, но все же лучше, чем легко угадываемый URL.
Вы можете использовать символические ссылки (или псевдонимы) на сервере, чтобы этот хэш указывал на ваш файл. Это также позволяет вам иметь разные хэши для разных клиентов и повышает безопасность, поскольку вы можете отозвать один хеш в случае его компрометации, сохранив при этом другие.
HTTPS (свободно доступный, например, через Let's Encrypt), конечно, рекомендуется, если ваш календарь содержит конфиденциальные материалы.