Apache. Документация на русском


Разделы:   1    2    3    4    5    6    7    8    9      10      11    12    13    14    15    16  

Раздел 10. Модули Апача

Пункты:   85    86    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107      108      109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

 <         > 
  RU            EN  

Пункт 108. Модуль Apache mod_authn_socache

Поддерживает кеш учетных данных для проверки подлинности, поэтому для каждого аутентифицированного запроса не требуется новый внутренний поиск.

Кэширование аутентификации

Некоторые пользователи более тяжелой аутентификации, такой как поиск в базе данных SQL ( mod_authn_dbd ), сообщают, что это создает неприемлемую нагрузку на их поставщика аутентификации. Типичным примером является ситуация, когда HTML-страница содержит сотни объектов (изображения, скрипты, таблицы стилей, мультимедиа и т. д.), а запрос к странице генерирует сотни фактически немедленных запросов на аутентифицированное дополнительное содержимое.

mod_authn_socache обеспечивает решение этой проблемы, поддерживая кеш учетных данных аутентификации.

Применение

Кэш аутентификации следует использовать там, где поиск аутентификации создает значительную нагрузку на сервер, серверную часть или сеть. Аутентификация по файлу ( mod_authn_file ) или dbm ( mod_authn_dbm ) вряд ли принесет пользу, так как они сами по себе быстрые и легковесные (хотя в некоторых случаях, например, для сетевого файла, кэширование может оказаться целесообразным). Другие поставщики, такие как проверка подлинности на основе SQL или LDAP, скорее всего, выиграют, особенно в случае наблюдаемой проблемы с производительностью. Среди стандартных модулей mod_authnz_ldap управляет своим собственным кешем, поэтому только он mod_authn_dbd обычно выигрывает от этого кеша.

Основные правила кэширования для провайдера:

  1. Включите провайдера, для которого вы кэшируете, в AuthnCacheProvideFor директиву.
  2. Укажите socache перед провайдером, для которого вы кэшируете, в директиве AuthBasicProvider or AuthDigestProvider .

Простой пример использования для ускорения mod_authn_dbd использования dbm в качестве механизма кэширования:

 #AuthnCacheSOCache является необязательным. Если указано, это для всего сервера
AuthnCacheSOCache dbm
<Каталог "/usr/www/myhost/private">
 Основной тип авторизации
 AuthName "Пример кэшированной аутентификации"
 База данных AuthBasicProvider
 AuthDBDUserPWQuery "ВЫБЕРИТЕ пароль ОТ AUTHN WHERE user = %s"
 AuthnCacheProvideFor dbd
 Требовать действительного пользователя
 #Необязательный
 AuthnCacheContext dbd-authn-пример
</Каталог> 

Кэширование с помощью пользовательских модулей

Разработчики модулей должны учитывать, что их модули должны быть включены для кэширования с помощью mod_authn_socache. Единственная необязательная функция API ap_authn_cache_store предназначена для кэширования учетных данных, которые провайдер только что нашел или сгенерировал. Примеры использования доступны в версии r957072, в которой три провайдера аутентификации включены для кэширования.



Директива AuthnCacheContext

Описание:Укажите строку контекста для использования в ключе кеша
Синтаксис: AuthnCacheContext directory|server|custom-string
По умолчанию: directory
Контекст:каталог
Положение дел:База
Модуль:mod_authn_socache

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

Два специальных значения для этого: directory , который использует контекст каталога запроса в виде строки, и server , который использует имя виртуального хоста.

По умолчанию используется directory , что также является наиболее консервативной настройкой. Это, вероятно, будет менее оптимальным, поскольку (например) приводит к тому, что $app-base , $app-base/images , $app-base/scripts и $app-base/media имеют свой собственный отдельный ключ кэша. Лучшей политикой является указание имени AuthnCacheContext для поставщика паролей: например, файл htpasswd или таблица базы данных.

Контексты могут совместно использоваться в разных областях сервера, где используются общие учетные данные. Однако это может стать вектором межсайтовых или межприложенных нарушений безопасности, поэтому эта директива не разрешена в контексте .htaccess .



Директива AuthnCacheEnable

Описание:Включить кэширование Authn, настроенное где угодно
Синтаксис: AuthnCacheEnable
Контекст:конфигурация сервера
Переопределить:Никто
Положение дел:База
Модуль:mod_authn_socache

Эта директива обычно не требуется: она подразумевается, если кеширование аутентификации включено где-либо в apache2.conf . Однако, если он не включен где-либо в apache2.conf , он по умолчанию не будет инициализирован и поэтому недоступен в контексте .htaccess . Эта директива гарантирует, что он будет инициализирован, чтобы его можно было использовать в .htaccess .



Директива AuthnCacheProvideFor

Описание:Укажите, для каких провайдеров аутентификации следует кэшировать
Синтаксис: AuthnCacheProvideFor authn-provider [...]
По умолчанию: None
Контекст:каталог, .htaccess
Переопределить:Аутконфиг
Положение дел:База
Модуль:mod_authn_socache

Эта директива указывает поставщика или поставщиков аутентификации для кэширования. Учетные данные, найденные поставщиком, не указанным в директиве AuthnCacheProvideFor, не будут кэшироваться.

Например, чтобы кэшировать учетные данные, найденные mod_authn_dbd настраиваемым провайдером myprovider или им , но оставить только те, которые ищутся облегченными провайдерами, такими как поиск файлов или dbm:

 AuthnCacheProvideДля dbd myprovider 


Директива AuthnCacheSOCache

Описание:Выберите бэкэнд-провайдера socache для использования
Синтаксис: AuthnCacheSOCache provider-name[:provider-args]
Контекст:конфигурация сервера
Переопределить:Никто
Положение дел:База
Модуль:mod_authn_socache
Совместимость:Необязательные аргументы провайдера доступны в Apache HTTP Server 2.4.7 и более поздних версиях.

Это общесерверный параметр для выбора поставщика кэша общих объектов, за которым следуют необязательные аргументы для этого поставщика. Некоторые возможные значения для provider-name : «dbm», «dc», «memcache» или «shmcb», каждое из которых зависит от загружаемого соответствующего модуля. Если не установлено, будет использоваться значение по умолчанию для вашей платформы.



Директива AuthnCacheTimeout

Описание:Установить тайм-аут для записей кэша
Синтаксис: AuthnCacheTimeout timeout (seconds)
По умолчанию: 300 (5 minutes)
Контекст:каталог, .htaccess
Переопределить:Аутконфиг
Положение дел:База
Модуль:mod_authn_socache

Кэширование данных аутентификации может быть проблемой безопасности, хотя краткосрочное кэширование вряд ли будет проблемой. Как правило, хорошим решением является кэширование учетных данных на время, необходимое для снижения нагрузки на серверную часть, но не дольше, хотя, если изменения ваших пользователей и паролей происходят нечасто, вам может подойти более длительный тайм-аут. Значение по умолчанию 300 секунд (5 минут) является осторожным и достаточным для снижения нагрузки на серверную часть, такую как dbd (запросы к базе данных SQL).

Это не следует путать с тайм-аутом сеанса, который является совершенно отдельной проблемой. Тем не менее, вы можете проверить свое программное обеспечение для управления сеансом на предмет того, могут ли кэшированные учетные данные «случайно» продлить сеанс, и иметь это в виду при установке тайм-аута.



 <         > 

Пункты:   85    86    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107      108      109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

Рейтинг@Mail.ru