Apache Версия 2.0 Сервера HTTP
Description: | позволяет справочник LDAP использоваться, чтобы хранить базу данных для Базовой аутентификации HTTP. |
---|---|
Status: | экспериментальный |
Module Identifier: | auth_ldap_module |
Source File: | mod_auth_ldap.c |
Compatibility: | доступный в версии 2.0.41 и позже |
mod_auth_ldap
поддерживает следующие особенности:
есть две фазы в предоставлении доступа к пользователю. Первая фаза - установление подлинности, в который
mod_auth_ldap
проверяет, что мандат пользователя действителен. Это также звонило
искать/связывать
фаза. Вторая фаза - разрешение, в который
mod_auth_ldap
определяет, разрешают ли заверенному пользователю доступ к рассматриваемому ресурсу. Это также известно как
сравнитесь
фаза.
в течение опознавательной фазы,
mod_auth_ldap
ищет вход в справочнике, который соответствует имени пользователя, которое клиент HTTP передает. Если единственное уникальное состязание найдено, то
mod_auth_ldap
попытки связывать с директивным сервером, используя отличительное имя входа плюс пароль, обеспеченный клиентом HTTP. Поскольку это делает поиск, затем связывание, это часто упоминается как ищущаяся/связывающаяся фаза. Вот - меры, принятые в течение ищущейся/связывающейся фазы.
AuthLDAPURL
директива с именем пользователя, которое передает клиент HTTP.
следующие директивы используются в течение ищущейся/связывающейся фазы
AuthLDAPURL
|
определяет сервер LDAP, основное отличительное имя, признак, чтобы использовать в поиске, так же как дополнительном фильтре поиска, чтобы использовать. |
AuthLDAPBindDN
|
дополнительное отличительное имя, чтобы связать с в течение фазы поиска. |
AuthLDAPBindPassword
|
дополнительный пароль, чтобы связать с в течение фазы поиска. |
в течение фазы разрешения,
mod_auth_ldap
попытки определять, уполномочен ли пользователь получить доступ к ресурсу. Многие из этих чеков требуют
mod_auth_ldap
сделать сравнивающуюся операцию на сервере LDAP. Это - то, почему эта фаза часто упоминается как сравнивающаяся фаза.
mod_auth_ldap
принимает следующий
Require
директивы, чтобы определить, приемлем ли мандат:
require valid-user
директива.
require user
директива, и имя пользователя в директиве соответствуют имени пользователя, которое передает клиент.
require dn
директива, и отличительное имя в директиве соответствуют отличительному имени, принесенному от справочника LDAP.
require group
директива, и отличительное имя, принесенное от справочника LDAP (или имя пользователя, которое передает клиент) происходят в группе LDAP.
require ldap-attribute
директива, и признак, принесенный от справочника LDAP соответствуют данной ценности.
mod_auth_ldap
использует следующие директивы в течение сравнивающейся фазы:
AuthLDAPURL
|
признак, определенный в URL используется в, сравнивают операции для
require user
операция.
|
AuthLDAPCompareDNOnServer
|
определяет поведение
require dn
директива.
|
AuthLDAPGroupAttribute
|
определяет признак, чтобы использовать для сравнений в
require group
директива.
|
AuthLDAPGroupAttributeIsDN
|
определяет, использовать ли пользовательское отличительное имя или имя пользователя, делая сравнения для
require group
директива.
|
Apache
Require
директивы используются в течение фазы разрешения, чтобы гарантировать, что пользователю разрешают получить доступ к ресурсу.
если эта директива существует,
mod_auth_ldap
доступ грантов к любому пользователю, который успешно подтвердил подлинность в течение ищущейся/связывающейся фазы.
require user
директива определяет, какие имена пользователя могут получить доступ к ресурсу. Однажды
mod_auth_ldap
восстановил уникальное отличительное имя от справочника, это делает LDAP сравнивает операцию, используя имя пользователя, определенное в
require user
видеть, является ли то имя пользователя часть только-принесенного входа LDAP. Многократным пользователям можно предоставить доступ, помещая многократные имена пользователя на линии, отделенной с местами. Если имя пользователя имеет место в этом, то это должно быть окружено двойными кавычками. Многократным пользователям можно также предоставить доступ при использовании многократного
require user
директивы, с одним пользователем в линию. Например, с a
AuthLDAPURL
из
ldap://ldap/o=Airius?cn
(то есть,
cn
используется для поисков), следующее требуют, чтобы директивы могли использоваться, чтобы ограничить доступ:
require user "Barbara Jenson"
require user "Fred User"
require user "Joe Manager"
из-за пути, который
mod_auth_ldap
обращается эта директива, Барбара Дженсон могла нанять как
Барбара Дженсон
,
Бабс Дженсон
или любой другой
cn
то, что она имеет в ее входе LDAP. Только единственное
require user
линия необходима, чтобы поддержать все ценности признака во входе пользователя.
если
uid
признак использовался вместо
cn
признак в URL выше, вышеупомянутые три линии могли быть сжаты к
require user bjenson fuser jmanager
эта директива определяет группу LDAP, членам которой разрешают доступ. Требуется выдающееся название группы LDAP. Отметьте: не окружайте название группы кавычками. Например, предположите, что следующий вход существовал в справочнике LDAP:
dn: cn=Administrators, o=Airius
objectClass: groupOfUniqueNames
uniqueMember: cn=Barbara Jenson, o=Airius
uniqueMember: cn=Fred User, o=Airius
следующая директива предоставила бы доступ и к Фреду и к Барбаре:
require group cn=Administrators, o=Airius
поведение этой директивы изменено
AuthLDAPGroupAttribute
и
AuthLDAPGroupAttributeIsDN
директивы.
require dn
директива позволяет администратору предоставлять доступ, основанный на выдающихся названиях. Это определяет отличительное имя, которое должно соответствовать для доступа, который будет предоставлен. Если выдающееся название, которое было восстановлено от директивного сервера, соответствует выдающемуся названию в
require dn
, тогда разрешение предоставляют. Отметьте: не окружайте выдающееся название кавычками.
следующая директива предоставила бы доступ к определенному отличительному имени:
require dn cn=Barbara Jenson, o=Airius
поведение этой директивы изменено
AuthLDAPCompareDNOnServer
директива.
require ldap-attribute
директива позволяет администратору предоставлять доступ, основанный на признаках заверенного пользователя в справочнике LDAP. Если признак в справочнике соответствует ценности, данной в конфигурации, доступ предоставляют.
следующая директива предоставила бы доступ к любому с признаком employeeType = активный
require ldap-attribute employeeType=active
многократные пары признака/ценности могут быть определены на той же самой линии, отделенной местами, или они могут быть определены в многократном
require ldap-attribute
директивы. Эффект перечислять многократных пар признака/ценностей - ИЛИ операция. Доступ будут предоставлять, если любая из перечисленных ценностей признака будет соответствовать ценности соответствующего признака в пользовательском объекте. Если ценность признака содержит место, только ценность должна быть в пределах двойных кавычек.
следующая директива предоставила бы доступ к любому с городским признаком, равным "Сан-Хосе" или статусом, равным "Активному"
require ldap-attribute city="San Jose" status=active
AuthLDAPURL ldap://ldap1.airius.com:389/ou=People, o=Airius?uid?sub?(objectClass=*)
require valid-user
AuthLDAPURL ldap://ldap1.airius.com ldap2.airius.com/ou=People, o=Airius
require valid-user
cn
, потому что поиск на
cn
должен
возвратить точно один вход. Именно поэтому этот подход не рекомендуется: это - лучшая идея, чтобы выбрать признак, который гарантируется уникальным в вашем справочнике, типа
uid
.
AuthLDAPURL ldap://ldap.airius.com/ou=People, o=Airius?cn
require valid-user
AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid
require group cn=Administrators, o=Airius
qpagePagerID
. пример предоставит доступ только к людям (заверенный через их UID), кто имеет алфавитно-цифровые пейджеры:
AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid??(qpagePagerID=*)
require valid-user
следующий пример демонстрирует власть использования фильтров, чтобы достигнуть усложненных административных требований. Без фильтров, было бы необходимо создать новую группу LDAP и гарантировать, что члены группы остаются синхронизированными с пользователями пейджера. Это становится тривиальным с фильтрами. Цель состоит в том, чтобы предоставить доступ к любому, кто имеет фильтр, плюс доступ предоставления к Джо Манаджеру, который не имеет пейджера, но действительно должен получить доступ к тому же самому ресурсу:
AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid??(|(qpagePagerID=*)(uid=jmanager))
require valid-user
это длится, может выглядеть запутывающим сначала, таким образом это помогает оценивать то, на что фильтр поиска будет похож основанный на том, кто соединяется, как показано ниже. Текст в синем - часть, которая является заполненной в использовании признака, определенного в URL. Текст в красном - часть, которая является заполненной в использовании фильтра, определенного в URL. Текст в зеленом заполнен в использовании информации, которая восстановлена от клиента HTTP. Если Фред Юзр соединяется как
fuser
, фильтр был бы похож
(&(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))
вышеупомянутый поиск только преуспеет если fuser имеет пейджер. Когда Джо Манаджер соединяется как jmanager , фильтр похож
(&(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))
вышеупомянутый поиск преуспеет ли jmanager имеет пейджер или нет.
чтобы использовать TLS, см.
mod_ldap
директивы
LDAPTrustedCA
и
LDAPTrustedCAType
.
чтобы использовать SSL, см.
mod_ldap
директивы
LDAPTrustedCA
и
LDAPTrustedCAType
.
определить безопасный сервер LDAP, использование
ldaps: //
в
AuthLDAPURL
директива, вместо
ldap: //
.
обычно, FrontPage использует файлы пользователя/группы FrontPage-web-specific (то есть,
mod_auth
модуль), чтобы обращаться со всем установлением подлинности. К сожалению, не возможно только измениться на установление подлинности LDAP, добавляя надлежащие директивы, потому что это сломается
разрешения
формы в клиенте FrontPage, которые пытаются изменить стандартные файлы разрешения на основе текста.
как только сеть FrontPage была создана, добавляя, что установление подлинности LDAP к этому - вопрос добавления следующих директив к
каждый
.htaccess
файл, который создан в сети
AuthLDAPURL "the url" AuthLDAPAuthoritative off AuthLDAPFrontPageHack on
AuthLDAPAuthoritative
должен быть прочь, чтобы позволить
mod_auth_ldap
уменьшать установление подлинности группы так, чтобы Apache отступил, чтобы подать установление подлинности для того, чтобы проверить членство группы. Это позволяет FrontPage-управляемому файлу группы использоваться.
FrontPage ограничивает доступ к сети, добавляя
require valid-user
директива к
.htaccess
файлы. Если
AuthLDAPFrontPageHack
не включенным,
require valid-user
директива преуспеет для любого пользователя, который является действительным
насколько LDAP заинтересован
. это означает, что любого, кто имеет вход в справочнике LDAP, считают действительным пользователем, тогда как FrontPage полагает только, что те люди в местном пользовательском файле действительные. Цель рубления состоит в том, чтобы вынудить Apacheа консультироваться с местным пользовательским файлом (который управляется FrontPage) - вместо LDAP - обращаясь
require valid-user
директива.
как только директивы были добавлены как определено выше, пользователи FrontPage будут в состоянии выполнить все операции управления от клиента FrontPage.
mod_auth
пользовательский файл. Пользовательское удостоверение личности идеально для этого.
mod_auth
чтобы использовать поддержку FrontPage. Это - то, потому что Apache будет все еще использовать
mod_auth
файл группы для определяет степень доступа пользователя к сети FrontPage.
.htaccess
файлы. Попытка вставлять их
<Location>
или
<Directory>
директивы не будут работать. Это - то, потому что
mod_auth_ldap
должен быть в состоянии захватить
AuthUserFile
директива, которая найдена в FrontPage
.htaccess
файлы так, чтобы это знало, где искать действительный пользовательский список. Если
mod_auth_ldap
директивы не находятся в том же самом
.htaccess
файл как директивы FrontPage, тогда рубление не будет работать, потому что
mod_auth_ldap
никогда не будет получать шанс обработать
.htaccess
файл, и не будет в состоянии найти FrontPage-управляемый пользовательский файл.
Description: | препятствовать другим опознавательным модулям подтверждать подлинность пользователя, если этот терпит неудачу |
---|---|
Syntax: |
AuthLDAPAuthoritative on|off
|
Default: |
AuthLDAPAuthoritative on
|
Context: | справочник, .htaccess |
Override: | AuthConfig |
Status: | экспериментальный |
Module: | mod_auth_ldap |
набор к
off
если этот модуль должен позволить другим опознавательным модулям пытаться подтвердить подлинность пользователя, должен установление подлинности с этим модулем терпеть неудачу. Контроль только передан, чтобы понизить модули, если нет никакого отличительного имени или правила, которое соответствует поставляемому имени пользователя (как передано клиентом).
Description: | дополнительное отличительное имя, чтобы использовать в закреплении с сервером LDAP |
---|---|
Syntax: |
AuthLDAPBindDN
distinguished-name
|
Context: | справочник, .htaccess |
Override: | AuthConfig |
Status: | экспериментальный |
Module: | mod_auth_ldap |
дополнительное отличительное имя имело обыкновение связывать с сервером, ища записи. Если не, если,
mod_auth_ldap
будет использовать анонимное, связывают.
Description: | пароль, используемый в conjuction со связывающимся отличительным именем |
---|---|
Syntax: |
AuthLDAPBindPassword
password
|
Context: | справочник, .htaccess |
Override: | AuthConfig |
Status: | экспериментальный |
Module: | mod_auth_ldap |
связывающийся пароль, чтобы использовать в соединении со связывающимся отличительным именем. Отметьте, что связывающийся пароль - вероятно уязвимые данные, и должен быть должным образом защищен. Вы должны только использовать
AuthLDAPBindDN
и
AuthLDAPBindPassword
если Вы абсолютно нуждаетесь в них, чтобы искать справочник.
Description: | язык к charset конверсионному файлу конфигурации |
---|---|
Syntax: |
AuthLDAPCharsetConfig
file-path
|
Context: | сервер config |
Status: | экспериментальный |
Module: | mod_auth_ldap |
AuthLDAPCharsetConfig
директива устанавливает местоположение языка к charset конверсионному файлу конфигурации.
дорожка файла
является относительно
ServerRoot
. этот файл определяет список языковых расширений к наборам символов. Большинство администраторов использует обеспеченный
charset.conv
файл, который связывает общие языковые расширения к наборам символов.
файл содержит линии в следующем формате:
Language-Extension
charset
[
Language-String
] ...
случай расширения не имеет значения. Чистые линии, и линии, начинающиеся с характера мешанины (
#
) игнорируются.
Description: | использовать сервер LDAP, чтобы сравнить отличительные имена |
---|---|
Syntax: |
AuthLDAPCompareDNOnServer on|off
|
Default: |
AuthLDAPCompareDNOnServer on
|
Context: | справочник, .htaccess |
Override: | AuthConfig |
Status: | экспериментальный |
Module: | mod_auth_ldap |
когда установлено,
mod_auth_ldap
будет использовать сервер LDAP, чтобы сравнить отличительные имена. Это - единственный ошибкоустойчивый способ сравнить отличительные имена.
mod_auth_ldap
будет искать справочник отличительное имя, определенное с
require dn
директива, тогда, восстанавливает отличительное имя и сравнивает это с отличительным именем, восстановленным от пользовательского входа. Если эта директива не установлена,
mod_auth_ldap
просто делает сравнение вереницы. Возможно получить ложные негативы с этим подходом, но это намного быстрее. Отметьте
mod_ldap
тайник может ускорить сравнение отличительного имени в большинстве ситуаций.
Description: | когда будет псевдонимы де-ссылки модуля |
---|---|
Syntax: |
AuthLDAPDereferenceAliases never|searching|finding|always
|
Default: |
AuthLDAPDereferenceAliases Always
|
Context: | справочник, .htaccess |
Override: | AuthConfig |
Status: | экспериментальный |
Module: | mod_auth_ldap |
эта директива определяет когда
mod_auth_ldap
де-сошлется на псевдонимы в течение операций LDAP. Неплатеж
always
.
Description: | включить или от установления подлинности LDAP |
---|---|
Syntax: |
AuthLDAPEnabled on|off
|
Default: |
AuthLDAPEnabled on
|
Context: | справочник, .htaccess |
Override: | AuthConfig |
Status: | экспериментальный |
Module: | mod_auth_ldap |
набор к
off
повредить
mod_auth_ldap
в определенных справочниках. Это полезно, если Вы имеете
mod_auth_ldap
позволенный в или около вершины вашего дерева, но хотят повредить это полностью в определенных местоположениях.
Description: | Позволить установлению подлинности LDAP работать с MS FrontPage |
---|---|
Syntax: |
AuthLDAPFrontPageHack on|off
|
Default: |
AuthLDAPFrontPageHack off
|
Context: | справочник, .htaccess |
Override: | AuthConfig |
Status: | экспериментальный |
Module: | mod_auth_ldap |
см. секцию на
using Microsoft FrontPage
с
mod_auth_ldap
.
Description: | признаки LDAP имели обыкновение проверять для членства группы |
---|---|
Syntax: |
AuthLDAPGroupAttribute
attribute
|
Context: | справочник, .htaccess |
Override: | AuthConfig |
Status: | экспериментальный |
Module: | mod_auth_ldap |
эта директива определяет, который признаки LDAP используются, чтобы проверить для членства группы. Многократные признаки могут использоваться, определяя эту директиву многократные времена. Если не определенный, то
mod_auth_ldap
использования
member
и
uniquemember
признаки.
Description: | использовать отличительное имя имени пользователя клиента, проверка для членства группы |
---|---|
Syntax: |
AuthLDAPGroupAttributeIsDN on|off
|
Default: |
AuthLDAPGroupAttributeIsDN on
|
Context: | справочник, .htaccess |
Override: | AuthConfig |
Status: | экспериментальный |
Module: | mod_auth_ldap |
когда установлено
on
, эта директива говорит, чтобы использовать выдающееся название имени пользователя клиента, проверка для членства группы. Иначе, имя пользователя будет использоваться. Например, предположите, что клиент послал имя пользователя
bjenson
, который соответствует отличительному имени LDAP
cn=Babs Jenson, o=Airius
. если эта директива установлена,
mod_auth_ldap
проверит, имеет ли группа
cn=Babs Jenson, o=Airius
как член. Если эта директива не установлена, то
mod_auth_ldap
проверит, имеет ли группа
bjenson
как член.
Description: | использовать отличительное имя имени пользователя клиента, чтобы установить переменную окружающей среды REMOTE_USER |
---|---|
Syntax: |
AuthLDAPRemoteUserIsDN on|off
|
Default: |
AuthLDAPRemoteUserIsDN off
|
Context: | справочник, .htaccess |
Override: | AuthConfig |
Status: | экспериментальный |
Module: | mod_auth_ldap |
если эта директива собирается на, ценность
REMOTE_USER
переменная окружающей среды будет собираться полное выдающееся название заверенного пользователя, а не только имя пользователя, которое передавал клиент. Это выключено по умолчанию.
Description: | URL, определяющий LDAP ищет параметры |
---|---|
Syntax: |
AuthLDAPUrl
url
|
Context: | справочник, .htaccess |
Override: | AuthConfig |
Status: | экспериментальный |
Module: | mod_auth_ldap |
RFC 2255 URL, которые определяют параметры поиска LDAP, чтобы использовать. Синтаксис URL
ldap://host:port/basedn?attribute?scope?filter
ldap
. для безопасного LDAP, использования
ldaps
вместо этого. Безопасный LDAP только доступен, если Apache был связан с библиотекой LDAP с поддержкой SSL.
название/порт ldap сервера (неплатежи к
localhost:389
для
ldap
, и
localhost:636
для
ldaps
). Чтобы определить многократные, избыточные серверы LDAP, только перечислите все серверы, отделенные местами.
mod_auth_ldap
будет пробовать соединиться с каждым сервером в свою очередь, пока это не делает успешную связь.
как только связь была сделана к серверу, та связь остается активной для жизни
httpd
процесс, или пока сервер LDAP понижается.
если сервер LDAP понижается и нарушает существующую связь,
mod_auth_ldap
попытается повторно соединиться, начинающийся с первичного сервера, и пробующий каждый избыточный сервер в свою очередь. Отметьте, что это отлично чем истинный поиск коллективного письма.
uid
. это - хорошая идея, чтобы выбрать признак, который будет уникален поперек всех записей в поддереве, которое Вы будете использовать.
one
или
sub
. отметить что возможности
base
также поддержан RFC 2255, но не поддержан этим модулем. Если возможности не обеспечиваются, или если
base
возможности определены, неплатеж должен использовать возможности
sub
.
(objectClass=*)
, который будет искать все объекты в дереве. Фильтры ограничены приблизительно 8000 характеров (определение
MAX_STRING_LEN
в Apacheском исходном тексте). Это должно быть чем достаточный для любого заявления.
делая поиски, признак, фильтр и имя пользователя, которое передает клиент HTTP объединены, чтобы создать фильтр поиска, который похож
(&(
filter
)(
attribute
=
username
))
.
например, рассмотрите URL
ldap://ldap.airius.com/o=Airius?cn?sub?(posixid=*)
. когда клиент пытается соединить использование имени пользователя
Babs Jenson
, получающийся фильтр поиска будет
(&(posixid=*)(cn=Babs Jenson))
.
см. выше для примеров
AuthLDAPURL
URL.