Настройка внешней авторизации в Apache
Вступление
Есть один проект, который использует облачное файловое хранилище OwnCloud. Для того, чтобы пользователь мог загружать данные ему обязательно необходима учётная запись. С этим пунктом проблем не возникло. В функционале OwnCloud'а есть опции предоставления доступа между пользователями системы и предоставление доступа по уникальной ссылке. Если с доступом по логину или группе проблем с безопасностью нет, то доступ по ссылке предполагает то, что ссылка доступна всем желающим и входить в систему для этого не требуется. Вот тут и возникла проблема: хотелось сохранить функционал ссылок, но доступ предоставлять только по логину и паролю.
Анализ
Доступ к файлам по ссылке имеет следующий вид: https://owncloud.gwtools.ru/public.php?service=files&t=5627da44883053d541add981dbfea754
. Было решено, что с помощью web-сервера Apache мы будем ограничивать доступ к файлу public.php
.
Логично, что пользователи должны были вводить тот же логин и пароль, который им необходим для входа в OwnCloud.
Решение
libapache2-mod-authnz-external