Можно ли перенаправить авторизацию ldap из формы cgi веб-портала в каталог в apache

Я работаю над веб-порталом, где пользователь аутентифицируется LDAP через форму perl CGI. В процессе аутентификации используется модуль Net::LDAPS. При входе в систему система сохраняет статус аутентификации пользователя и создает файл cookie CGI, и пользователь может выполнять различные действия через портал, в основном взаимодействие с базой данных, до тех пор, пока пользователь не выйдет из системы.

На том же сервере есть директория с какими-то файлами. Я хочу, чтобы пользователь мог войти на веб-портал, а затем просмотреть каталог файлов и загрузить эти файлы.

Самый простой способ, который я могу придумать, — это поместить файл htaccess с «Параметры + индексы» и аутентификацию ldap в каталог, но для этого потребуется другой вход в систему, который не связан с веб-порталом.

Есть ли способ связать аутентификацию ldap на основе cgi веб-портала с файлом htaccess?


person Alex    schedule 19.10.2018    source источник


Ответы (1)


Вы упомянули, что пользователь может выйти из системы и больше не использовать портал. Но нет портативного способа выхода пользователя с базовой аутентификацией. Они смогут продолжить просмотр каталогов.

Вместо вашего сценария CGI, который аутентифицирует пользователя, вы можете просто настроить аутентификацию LDAP как для каталогов данных, так и для портала. Некрасиво, но сработает.

Лучше и чище для вас будет предоставлять доступ к каталогам данных не напрямую, а только через портал. Если вы используете функцию информации о пути Apache (https://httpd.apache.org/docs/2.4/de/mod/core.html#acceptpathinfo), вам даже не нужно беспокоиться о проверке пути на наличие вредоносных конструкций «../../..» и URI. будет выглядеть очень естественно для ваших пользователей.

person Guido Flohr    schedule 22.10.2018
comment
Спасибо за ответ Гвидо. Проблема с порталом CGI заключается в том, что он также проверяет пользователя по списку пользователей в базе данных, чтобы определить разрешения для действий на портале, поэтому было бы довольно много работы, чтобы изменить это. И поскольку каталог, на который я хочу сослаться, содержит конфиденциальные данные, я не могу использовать что-либо вроде перезаписи с помощью HTTP_REFERER или HTTP_COOKIE. Можете ли вы предложить способ подключения через портал, включающий авторизацию LDAP с портала? - person Alex; 25.10.2018
comment
Я действительно этого не понимаю. В своем ответе я имел в виду, что вы должны реализовать небольшой проводник/Mac Finder для этих каталогов в качестве компонента вашего портала. Если пользователь запрашивает server/cgi-bin/finder.pl/path/to/ dir, вы показываете индексную страницу для $docroot/path/to/dir, и если они переходят к server/cgi-bin/finder.pl/path/to/dir/secret.pdf, вы возвращаете pdf в теле ответа. А ваш cgi-скрипт проверяет, аутентифицирован ли пользователь, как и другие скрипты вашего портала. Написать, что finder.pl это не ракетостроение. - person Guido Flohr; 25.10.2018