аутентификация winbind через apache slow

У меня есть установка Linux для аутентификации пользователей, использующих Active Directory с помощью samba / winbind.

Затем настраивается Apache для использования этого для аутентификации пользователей. Это делается с помощью:

<IfModule mod_authnz_external.c>
    AddExternalAuth pwauth /usr/sbin/pwauth
    SetExternalAuthMethod pwauth pipe
</IfModule>

Но запросы страниц, занимающие менее 1 секунды без аутентификации, теперь занимают> 6 секунд. Просмотр журнала в /var/log/samba/log.winbindd не показывает никаких ошибок, но каждая загрузка страницы, похоже, требует большого количества запросов аутентификации. В основном, похоже, есть одна аутентификация для каждого загруженного ресурса, например для каждого файла css.

В /etc/samba/smb.conf я попытался поиграть с некоторыми настройками, такими как winbind cache time = 300 и winbind offline logon = yes . Я также попытался изменить бэкэнд idmap с tdb на ad.

Во время загрузки страницы использование процессора winbindd становится очень высоким, ~ 50-60%, в то время как ни один другой процесс, похоже, не превышает 10-20%.

Я пропустил некоторую конфигурацию, которая могла бы ускорить это, или есть лучшие подходы к этой проблеме (например, использование чего-то другого, кроме mod_authnz_external)?

2
задан 1 September 2017 в 15:36
2 ответа

Я до сих пор не нашел, как улучшить производительность при использовании mod_authnz_external. Однако переход на другой модуль apache mod_authnz_ldap избавил от проблемы с производительностью. Единственным недостатком является то, что конфигурация ldap дублируется для системы и для apache.

3
ответ дан 3 December 2019 в 10:34

В аналогичной настройке с использованием Ubuntu 18.04 в качестве клиента и Samba 4.7.8 в качестве сервера одна аутентификация с pwauth занимает около 200 мс, что неприемлемо для операций SVN, поскольку простой листинг репозитория использует довольно много запросов.

Загрузка authn_socache в качестве кеша аутентификации (пример включает authnz_external и authz_unixgroup ) со следующими настройками, что приводит к повышению производительности:

<Location /svn>
     DAV svn
     SVNParentPath /var/local/svn/
     SVNListParentPath on
     AuthType Basic
     AuthName "private area"
     AuthBasicProvider socache external
     AuthExternal pwauth
     AuthExternalProvideCache on
     AuthnCacheProvideFor external
     AuthnCacheTimeout 300
     Require unix-group svngroup
</Location>

AuthExternalProvideCache On , иначе authnz_external не будет кэшировать логины.

0
ответ дан 3 December 2019 в 10:34

Теги

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