Как динамически установить групповой доступ в конфигурации apache2

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

Я хочу использовать подстановочный знак, чтобы разрешить доступ к этой среде только определенной группе, как это можно сделать? В настоящее время моя конфигурация позволяет всем пользователям:

<LocationMatch "/private/[^/]+/login">
        AuthType Basic
        AuthName "Trac"
        AuthUserFile /home/auth/private.access.user
        Require valid-user
</LocationMatch>

Но я хотел бы, чтобы это читалось как-то так:

<LocationMatch "/private/[^/]+/login">
        AuthType Basic
        AuthName "Trac"
        AuthUserFile /home/auth/private.access.user
        Require Group [^/]
</LocationMatch>

Это возможно?


person milovanderlinden    schedule 10.01.2011    source источник


Ответы (2)


С Trac мне гораздо проще разрешить доступ всем в конфигурации Apache, а затем использовать подключаемый модуль управления учетными записями Trac (http://trac-hacks.org/wiki/AccountManagerPlugin) для управления доступом к экземпляру Trac каждого проекта. Отзовите все разрешения у «анонимного» пользователя, и пользователи из группы 2 не смогут ничего сделать с экземпляром Trac группы 1, кроме как увидеть страницу с ошибкой и получить приглашение войти в систему.

person bta    schedule 20.01.2011

Я бы сделал следующее...

<LocationMatch "/private/[^/]+/login">
        AuthType Basic
        AuthName "Trac"
        AuthUserFile /home/auth/private.access.user
        AuthGroupFile /home/auth/private.access.groups
        Require Group group1 group2
</LocationMatch>

Если групповой файл /home/auth/private.access.groups представляет собой простой текстовый (ascii) файл, например, он может выглядеть так:

group1: john barry
group2: frank jeremy

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

person milosgajdos    schedule 10.01.2011
comment
Да, но тогда участник из группы2 сможет получить доступ к среде trac для группы1, или я ошибаюсь? - person milovanderlinden; 10.01.2011
comment
поэтому вам нужно больше детализации в управлении доступом... не уверен, что это выполнимо в apache, но для большей детализации вы можете использовать что-то вроде этого sumoam.sourceforge.net/index.php - person milosgajdos; 11.01.2011
comment
Спасибо, я проверил сумоам, он непригоден для того, о чем я просил здесь, но я ценю, что вы пытаетесь дать мне решение. - person milovanderlinden; 16.01.2011