Репозиторий 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. На всякий случай.

Другие вопросы по тегам