Для сессий, явно выполняющих подсоединение Bind к базе данных back-ldap, всегда создаётся своё собственное соединение к удалённому LDAP-серверу. Анонимные сессии совместно используют единственное анонимное подключение к удалённому серверу. Для сессий, выполняющих подсоединение через другие механизмы, все сессии с одинаковым DN будут совместно использовать одно и то же соединение. Эта стратегия объединения подключений может увеличить эффективность прокси путём снижения накладных расходов на повторное открытие/закрытие нескольких соединений.
База данных ldap может также выполнять роль информационной службы, то есть идентификационные сущности клиентов, прошедших аутентификацию локально, предъявляются удалённому серверу, возможно, в несколько изменённой форме. Для этих целей прокси-сервер подсоединяется к удалённому серверу от имени некоторой административной идентификационной сущности и, если необходимо, авторизуется от имени предъявленной идентификационной сущности. Смотрите правила idassert-* ниже. На удалённом сервере административной идентификационной сущности прокси-сервера должно быть разрешено проходить авторизацию посредством соответствующих правил authzTo; более подробную информацию смотрите в man-странице slapd.conf(5).
Экземпляр slapd(8), реализующий прокси-сервер, должен иметь сведения схемы данных для атрибутов и объектных классов, используемых в фильтрах, запрашиваемых DN и другой относящейся к запросам информации. Он должен также иметь сведения схемы данных для данных, возвращаемых удалённым сервером. Ответственность за поддержание схемы данных прокси-сервера в актуальном (относительно удалённых серверов) состоянии лежит на администраторе этого прокси-сервера.
Примечание: При подключении к тому же самому экземпляру slapd(8), каждое соединение требует создания нового потока; как следствие, slapd(8) должен быть скомпилирован с поддержкой потоков и может понадобиться произвести некоторые настройки в параметре threads. В этом случае может быть предпочтительнее использовать механизм манипуляции данными slapd-relay(5), который выполняет транслируемые операции внутри и потому повторно использует то же самое соединение.
Примечание: В ранних версиях back-ldap было рекомендовано всегда устанавливать
lastmod off
для баз данных ldap и meta. Это было необходимо, потому что проксирование не должно выполняться для операционных атрибутов, относящихся к созданию и модификации записи, поскольку они могут быть ошибочно записаны на целевой сервер (серверы) и привести к ошибке. Текущая реализация автоматически устанавливает lastmod в off, поэтому использование этой директивы избыточно и указывать её не следует.
uri "ldap://host/ ldap://backup-host/"
URI в списке разделяются пробельным символом или запятой. Всякий раз, когда ответивший сервер не является первым в списке, список переупорядочивается и ответивший сервер перемещается на первое место; таким образом в следующий раз, когда потребуется установить соединение, обращение к этому серверу будет выполняться в первую очередь.
Задавая подобные настройки, вы ничем не рискуете; они используются только для проверки прав доступа. По умолчанию используется simple-подсоединение с пустыми binddn и credentials, то есть соответствующие операции будут выполняться анонимно. Если данная директива не задана, но задана директива idassert-bind, используются настройки из этой директивы. Подробнее смотрите в описании директивы idassert-bind.
Соединение между прокси-базой данных и удалённым сервером, ассоциированное с этой идентификационной сущностью, кэшируется независимо от продолжительности жизни соединения между клиентом и прокси-сервером, которое первоначально привело к установлению этого соединения.
Эта идентификационная сущность не используется прокси неявно при выполнении клиентом анонимного подключения. С другой стороны, настройки из директивы idassert-bind в некоторых случаях могут быть использованы для реализации такого поведения, что небезопасно и должно применяться с максимальной осторожностью. С введением этой директивы устаревшими стали директивы acl-authcDN и acl-passwd.
Значения по умолчанию настроек TLS соответствуют значениям основных настроек TLS slapd, за исключением параметра tls_reqcert, значением по умолчанию которого является "demand".
Предполагается, что идентификационная сущность, указанная в этой директиве (в соответствии со свойствами выбранного метода аутентификации), будет иметь на целевом сервере доступ
none|simple|sasl
По умолчанию используется значение none, то есть никакого утверждения идентификационной сущности не выполняется.
Параметр authz используется для указания того, что при подсоединении SASL должна применяться простая (native) авторизация SASL, если таковая доступна; поскольку соединения кэшируются, эту возможность следует использовать, только когда авторизация выполняется с фиксированной идентификационной сущностью (например, посредством параметров authzDN или authzID). В противном случае используется значение по умолчанию - proxyauthz, то есть ко всем операциям добавляется элемент управления proxyAuthz (Proxied Authorization, RFC 4370).
Поддерживаемые режимы (аргумент mode):
<mode> := {legacy|anonymous|none|self}
Если значение <mode> не указано, но задан параметр authzId, прокси всегда будет выполнять авторизацию от имени этой идентификационной сущности. Значение <authorization ID> может быть задано в форматах
u:<user>
[dn:]<DN>
Предполагается, что значение идентификационной сущности в первом формате будет расширено удалённым сервером в соответствии с правилами authz; подробнее смотрите в man-странице slapd.conf(5). Если применяется второй формат, независимо от того, присутствует префикс dn: или нет, указываемая строка должна удовлетворять требованиям валидации и нормализации DN.
Режим по умолчанию - legacy, при котором подразумевается, что прокси-сервер будет либо выполнять простое подсоединение от имени authcDN, либо SASL-подсоединение от имени authcID, а затем производить утверждение идентификационной сущности клиента, если тот не пытается подсоединиться анонимно. При других режимах подразумевается, что прокси-сервер всегда будет либо выполнять простое подсоединение от имени authcDN, либо SASL-подсоединение от имени authcID, если это не ограничивается правилами idassert-authzFrom (смотрите выше), в таком случае операция будет завершена неудачей; после подсоединения прокси будет выполнять утверждение некоторой другой идентификационной сущности в зависимости от режима <mode>. В режиме anonymous будет выполняться утверждение пустой идентификационной сущности. В режиме self будет выполняться утверждение идентификационной сущности клиента. В режиме none элемент управления proxyAuthz использоваться не будет, таким образом будет выполняться утверждение идентификационной сущности authcDN или authcID. Для всех режимов, требующих использования элемента управления proxyAuthz, идентификационная сущность прокси-сервера должна иметь на удалённом сервере соответствующие права authzTo, либо у утверждаемых идентификационных сущностей должны быть соответствующие права authzFrom. Следует, однако, отметить, что функция утверждения идентификационных сущностей полезна, главным образом, когда утверждаемые идентификационные сущности не существуют на удалённом сервере.
В качестве флагов (аргумент flags) могут быть заданы
override,[non-]prescriptive,proxy-authz-[non-]critical
При использовании флага override утверждение идентификационной сущности выполняется, даже когда подключение к базе данных уже авторизовано для идентификационной сущности клиента. То есть после выполнения подсоединения с предоставленной идентификационной сущностью (и, как следствие, проведения её аутентификации), прокси выполняет утверждение идентификационной сущности, используя заданную в конфигурации идентификационную сущность и метод аутентификации.
При использовании флага prescriptive (по умолчанию), операции будут завершаться неудачей с кодом inappropriateAuthentication для тех идентификационных сущностей, утверждение которых не разрешено шаблонами из директивы idassert-authzFrom. При использовании флага non-prescriptive, для тех идентификационных сущностей, утверждение которых не разрешено шаблонами из директивы idassert-authzFrom, операции выполняются анонимно.
При использовании флага proxy-authz-non-critical (по умолчанию), элемент управления proxyAuthz не помечается как критичный (в нарушение требований RFC 4370). Рекомендуется использование флага proxy-authz-critical.
Значения по умолчанию настроек TLS соответствуют значениям основных настроек TLS slapd, за исключением параметра tls_reqcert, значением по умолчанию которого является "demand".
Ассоциированная с этой директивой идентификационная сущность также используется для привилегированных операций в случаях, когда директива idassert-bind задана, а acl-bind - нет. Подробнее смотрите в описании директивы acl-bind.
С введением этой директивы устаревшими стали директивы idassert-authcDN, idassert-passwd, idassert-mode и idassert-method.
<op> ::= bind, add, delete, modrdn, modify, compare, search
Общая продолжительность операции search контролируется либо параметром timelimit поискового запроса, либо ограничениями по времени, заданными на стороне сервера (смотрите директивы timelimit и limits в man-странице slapd.conf(5)). Данный параметр timeout контролирует, насколько долго целевой сервер может не отвечать на запрос, прежде чем операция будет прервана. Для операций, не указанных в списке (unbind и abandon), назначать таймауты бессмысленно, поскольку они не подразумевают возвращения какого-либо ответа. Также поддержка таймаутов не реализована для определённых на данный момент расширенных (extended) операций. Если никакой операции op не указано, значение таймаута val применяется ко всем поддерживаемым операциям.
Примечание: если превышено ограничение timelimit, выполняется отмена операции (в соответствии с директивой cancel); протокол не предоставляет какого-либо способа отката операций, так что клиент не будет оповещён о результате выполнения операции, была ли она в итоге удачной или нет. В случае превышения таймаута во время выполнения операции bind, соединение разрывается в соответствии с RFC4511.
Примечание: в некоторых случаях данный механизм может выполнять подсоединения bind перед выполнением другой операции (например, для анонимного подсоединения, либо подсоединения от имени некоторой предопределённой идентификационной сущности в соответствии с директивой idassert-bind). В этом случае используется таймаут той операции, которая привела к выполнению подсоединения bind.
Значения по умолчанию настроек TLS соответствуют значениям основных настроек TLS slapd, за исключением параметра tls_reqcert, значением по умолчанию которого является "demand".
Идентификационная сущность acl-authcDN ни при каких обстоятельствах не используется прокси неявно при выполнении клиентом анонимного подключения. С другой стороны, настройки из директив idassert-* могут быть использованы для реализации такого поведения, что небезопасно и должно применяться с максимальной осторожностью.
Данная директива отменяется аргументом binddn параметра acl-bind (если bindmethod=simple), и в будущем будет исключена.
overlay rwm
а затем указывать префикс rwm- перед всеми объявлениями rewrite/map. Подробнее смотрите в man-странице slapo-rwm(5).
С другой стороны, существует много наложений, которые лучше всего использовать совместно с механизмом манипуляции данными LDAP. Наложение proxycache позволяет кэшировать поисковые запросы LDAP в локальной базе данных (смотрите man-страницу slapo-pcache(5)). Наложение rwm обеспечивает возможности перезаписи DN и отображения атрибутов/объектных классов удалённой базы данных в требуемый вид (смотрите man-страницу slapo-rwm(5)).
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |