Заполнение удаленного пользователя в лог-файлах apache из сессии PHP - PullRequest
1 голос
/ 27 июля 2011

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

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

Нет конца для выбора модулей mod_auth - однако большинство, похоже, реализуют свое собственное управление сеансом (то есть генерируютих собственные файлы cookie и их собственные поиски имени пользователя в сеансе).

В идеальном мире я хотел бы иметь модуль, который:

  1. позволил бы мне указать имя файла cookie сеанса
  2. может извлечь произвольно / конфигурируемую именованную переменную из сеанса PHP, содержащего имя пользователя
  3. , затем кеширует ненулевые комбинации sessionid / username
  4. , где это уместно, перенаправит пользователей кнастраиваемый URL-адрес для входа в систему

Раньше на программировании на C я был сносным, поэтому мог написать свой собственный, если необходимо - к сожалению, многие ссылки из https://modules.apache.org мертвы (mod_auth_any, mod_auth_cookie_dbm)поэтому я не могу найти что-то близкое к тому, что мне нужно, чтобы понять API / найти что-то, чтоЯ мог бы использовать «из коробки».

Любые предложения хорошо написанных модулей, которые могут предоставить то, что мне нужно, или которые соответствуют моим требованиям и хорошо написаны / поддерживаются?

TIA

С

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Вы должны проверить mod_auth_external .

В вики содержится много полезной информации, например:

Можно использовать куки, но:

Невозможно установить куки из модуля аутентификации

И кеш аутентификации не выполняется (только mod_authz_ldap имеет кеш на стороне сервера).

Я думаю, что вам нужно будет обрабатывать инициализацию сеанса PHP (набор файлов cookie), страницы входа в систему, повторные страницы и успехи входа в систему (возможно, с регенерацией идентификатора сеанса) в отдельном приложении, предназначенном для этой работы. Используйте второй виртуальный хост, делая только это, как если бы вы использовали решение SSO, такое как CAS или сервер Radius. Затем используйте mod_auth_external, чтобы проверить заданное содержимое cookie или перенаправить пользователя в это приложение для входа. В аутентификаторе mod_auth_external вам нужно будет контролировать, что это действительный сеанс на стороне сервера (не доверяйте содержимому файлов cookie), либо непосредственно в базе данных, либо при связи с этим вторым приложением), но вы должны найти что-то быстрое, это сделано на каждом запрошенном объекте. Или доверяйте содержимому cookie, используя его только для целей регистрации, но не доверяйте ему в своем реальном приложении PHP и убедитесь, что сеанс действителен на стороне реального приложения PHP.

0 голосов
/ 09 августа 2011

решил пойти с authmemcookie

...