Назад | Перейти на главную страницу

FakeBasicAuth и AuthzSVNAccessFile: как обращаться к пользователям?

При использовании Apache2 с клиентскими сертификатами и FakeBasicAuth, как мне обращаться к пользователям в AuthzSVNAccessFile? В именах пользователей есть забавные символы, например /CN=Damon Wischik, и authz не любит = символ в именах пользователей.

В моей конфигурации Apache есть строки

    SSLVerifyClient require
    SSLOptions +FakeBasicAuth

Это означает, что пользователь предоставляет сертификат клиента, Apache берет строку темы из сертификата, например. /CN=Damon Wischik, и использует это как имя пользователя и «пароль» как пароль. Я добавил htpasswd запись для этого пользователя, и он может с радостью войти в систему.

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

[/]
* = r

и пользователь смог прочитать содержимое репозитория. Я пробовал писать

[/]
* =
"/CN=Damon Wischik" = r

и пользователь получает сообщение «Доступ запрещен», а журнал ошибок Apache сообщает

[date] [error] [client ip] Failed to load the AuthzSVNAccessFile: The character 'D' in rule '"/CN' is not allowed in authz rules
[date] [error] [client ip] Access denied: '/CN=Damon Wischik' GET foo:/

Как правильно убрать эти забавные символы в именах пользователей в файле authz?

(Спасибо Стефану Сперлингу из списка рассылки пользователей подрывной деятельности за ответ.) RTFM! Из книга красных бобов глава 6,

Subversion 1.5 привнесла несколько полезных функций в синтаксис файла доступа - псевдонимы имени пользователя, маркеры класса аутентификации и новый механизм исключения из правил - все это еще больше упростило обслуживание файла доступа.

Вот как использовать псевдонимы в этом конкретном случае.

[aliases]
djw = /CN=Damon Wischik

[/]
* = 
&djw = r