Репозиторий Subversion выдает неверный запрос HTTP 403 при доступе через аутентификацию https и Kerberos (Windwos Integrated).
Мы столкнулись с этой проблемой с разными версиями ОС и Subversion на стороне сервера, при этом следующие детали были одинаковыми:
- Мы использовали протокол https для доступа к репозиториям SVN.
- Мы использовали Apache HTTPD + mod_dav_svn + mod_authz_svn. Мы также использовали mod_auth_kerb или mod_auth_gssapi.
- Пользователи прошли проверку подлинности с помощью встроенной проверки подлинности Windows. Членам определенной группы был разрешен доступ к репозиториям SVN.
- Клиентами были рабочие станции Windows с довольно свежими версиями SVN (1.13-1.14).
Некоторые клиенты работали нормально, другие получали ошибку HTTP 400 Bad Request при доступе к репозиторию SVN. На стороне сервера ошибка проявлялась в сообщении «НЕТ ДАННЫХ АУТЕНТИФИКАЦИИ. Клиент не отправил никаких заголовков аутентификации» в журнале ошибок SSL.
Некоторым пользователям это постоянно удавалось, другим постоянно не удавалось получить доступ к репозиториям SVN.
1 ответ
Оказалось, что разница между успешными и неудачными пользователями заключалась в количестве групп LDAP, членами которых они были. Неудавшиеся пользователи были членами большего количества групп.
Похоже, что в какой-то момент все эти имена групп отправляются от клиента на сервер в заголовках HTTP-запросов... которые имеют ограничение на размер.
Решением было увеличить размер поля заголовка HTTP-запроса с помощью следующей директивы:
LimitRequestFieldSize 12392
Взгляните на официальную документацию Apache HTTPD по этой директиве :
Директива LimitRequestFieldSize позволяет администратору сервера установить ограничение на разрешенный размер поля заголовка HTTP-запроса. Серверу необходимо, чтобы это значение было достаточно большим, чтобы хранить любое поле заголовка обычного клиентского запроса. Размер обычного поля заголовка запроса будет сильно различаться в зависимости от реализации клиента, часто в зависимости от того, в какой степени пользователь настроил свой браузер для поддержки детального согласования содержимого. Заголовки аутентификации SPNEGO могут иметь длину до 12392 байт.
РЕДАКТИРОВАНИЕ: оказывается, что 12392 байт не обязательно достаточно для всего, поэтому мы увеличили предел до 65536. На всякий случай.