Репозиторий 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. На стороне сервера ошибка проявляется в сообщении «NO AUTH DATA Client не отправил никаких заголовков аутентификации» в журнале ошибок SSL.

Некоторым пользователям постоянно удавалось, другим постоянно не удавалось получить доступ к репозиториям SVN.

0
задан 24 March 2021 в 19:24
1 ответ

Оказалось, что разница между успешными и неудачными пользователями заключалась в количестве групп LDAP, в которые они входили. Неудачные пользователи входили в другие группы.

Похоже, что в какой-то момент все эти имена групп отправляются от клиента к серверу в заголовках HTTP-запросов ... которые имеют ограничение на размер.

Решением было увеличить размер поля заголовка HTTP-запроса с помощью следующей директивы:

LimitRequestFieldSize 12392

Взгляните на официальную документацию Apache HTTPD по этой директиве :

Директива LimitRequestFieldSize разрешает серверу администратор устанавливает ограничение на допустимый размер поля заголовка HTTP-запроса. Серверу необходимо, чтобы это значение было достаточно большим для хранения любого поля заголовка из обычного клиентского запроса. Размер обычного поля заголовка запроса будет сильно различаться в зависимости от реализации клиента, часто в зависимости от того, в какой степени пользователь настроил свой браузер для поддержки подробного согласования содержания. Заголовки аутентификации SPNEGO могут иметь длину до 12392 байтов.

РЕДАКТИРОВАТЬ: оказалось, что 12392 байта не обязательно для всего, поэтому мы подняли лимит до 65536. На всякий случай.

0
ответ дан 24 April 2021 в 02:08

Теги

Похожие вопросы