<-
Apache > HTTP Server > Documentation > Version 2.0 > Modules

Apache Модуль mod_auth_ldap

Description: позволяет справочник LDAP использоваться, чтобы хранить базу данных для Базовой аутентификации HTTP.
Status: экспериментальный
Module Identifier: auth_ldap_module
Source File: mod_auth_ldap.c
Compatibility: доступный в версии 2.0.41 и позже

резюме

mod_auth_ldap поддерживает следующие особенности:

директивы

темы

см. также

top

Contents

top

Operation

есть две фазы в предоставлении доступа к пользователю. Первая фаза - установление подлинности, в который mod_auth_ldap проверяет, что мандат пользователя действителен. Это также звонило искать/связывать фаза. Вторая фаза - разрешение, в который mod_auth_ldap определяет, разрешают ли заверенному пользователю доступ к рассматриваемому ресурсу. Это также известно как сравнитесь фаза.

The Authentication Phase

в течение опознавательной фазы, mod_auth_ldap ищет вход в справочнике, который соответствует имени пользователя, которое клиент HTTP передает. Если единственное уникальное состязание найдено, то mod_auth_ldap попытки связывать с директивным сервером, используя отличительное имя входа плюс пароль, обеспеченный клиентом HTTP. Поскольку это делает поиск, затем связывание, это часто упоминается как ищущаяся/связывающаяся фаза. Вот - меры, принятые в течение ищущейся/связывающейся фазы.

  1. произвести фильтр поиска, комбинируя признак и фильтр, обеспеченный в AuthLDAPURL директива с именем пользователя, которое передает клиент HTTP.
  2. искать справочник, используя произведенный фильтр. Если поиск не возвращает точно один вход, отрицайте или доступ снижения.
  3. принести выдающееся название входа, восстановленного от поиска и попытаться связать с сервером LDAP, используя отличительное имя и пароль, который передает клиент HTTP. Если связывание неудачно, отрицайте или доступ снижения.

следующие директивы используются в течение ищущейся/связывающейся фазы

AuthLDAPURL определяет сервер LDAP, основное отличительное имя, признак, чтобы использовать в поиске, так же как дополнительном фильтре поиска, чтобы использовать.
AuthLDAPBindDN дополнительное отличительное имя, чтобы связать с в течение фазы поиска.
AuthLDAPBindPassword дополнительный пароль, чтобы связать с в течение фазы поиска.

The Authorization Phase

в течение фазы разрешения, mod_auth_ldap попытки определять, уполномочен ли пользователь получить доступ к ресурсу. Многие из этих чеков требуют mod_auth_ldap сделать сравнивающуюся операцию на сервере LDAP. Это - то, почему эта фаза часто упоминается как сравнивающаяся фаза. mod_auth_ldap принимает следующий Require директивы, чтобы определить, приемлем ли мандат:

mod_auth_ldap использует следующие директивы в течение сравнивающейся фазы:

AuthLDAPURL признак, определенный в URL используется в, сравнивают операции для require user операция.
AuthLDAPCompareDNOnServer определяет поведение require dn директива.
AuthLDAPGroupAttribute определяет признак, чтобы использовать для сравнений в require group директива.
AuthLDAPGroupAttributeIsDN определяет, использовать ли пользовательское отличительное имя или имя пользователя, делая сравнения для require group директива.
top

The require Directives

Apache Require директивы используются в течение фазы разрешения, чтобы гарантировать, что пользователю разрешают получить доступ к ресурсу.

require valid-user

если эта директива существует, mod_auth_ldap доступ грантов к любому пользователю, который успешно подтвердил подлинность в течение ищущейся/связывающейся фазы.

require user

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

require group

эта директива определяет группу 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 , тогда разрешение предоставляют. Отметьте: не окружайте выдающееся название кавычками.

следующая директива предоставила бы доступ к определенному отличительному имени:

require dn cn=Barbara Jenson, o=Airius

поведение этой директивы изменено AuthLDAPCompareDNOnServer директива.

require ldap-attribute

require ldap-attribute директива позволяет администратору предоставлять доступ, основанный на признаках заверенного пользователя в справочнике LDAP. Если признак в справочнике соответствует ценности, данной в конфигурации, доступ предоставляют.

следующая директива предоставила бы доступ к любому с признаком employeeType = активный

require ldap-attribute employeeType=active

многократные пары признака/ценности могут быть определены на той же самой линии, отделенной местами, или они могут быть определены в многократном require ldap-attribute директивы. Эффект перечислять многократных пар признака/ценностей - ИЛИ операция. Доступ будут предоставлять, если любая из перечисленных ценностей признака будет соответствовать ценности соответствующего признака в пользовательском объекте. Если ценность признака содержит место, только ценность должна быть в пределах двойных кавычек.

следующая директива предоставила бы доступ к любому с городским признаком, равным "Сан-Хосе" или статусом, равным "Активному"

require ldap-attribute city="San Jose" status=active

top

Examples

top

Using TLS

чтобы использовать TLS, см. mod_ldap директивы LDAPTrustedCA и LDAPTrustedCAType .

top

Using SSL

чтобы использовать SSL, см. mod_ldap директивы LDAPTrustedCA и LDAPTrustedCAType .

определить безопасный сервер LDAP, использование ldaps: // в AuthLDAPURL директива, вместо ldap: // .

top

Using Microsoft FrontPage with mod_auth_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-управляемому файлу группы использоваться.

How It Works

FrontPage ограничивает доступ к сети, добавляя require valid-user директива к .htaccess файлы. Если AuthLDAPFrontPageHack не включенным, require valid-user директива преуспеет для любого пользователя, который является действительным насколько LDAP заинтересован . это означает, что любого, кто имеет вход в справочнике LDAP, считают действительным пользователем, тогда как FrontPage полагает только, что те люди в местном пользовательском файле действительные. Цель рубления состоит в том, чтобы вынудить Apacheа консультироваться с местным пользовательским файлом (который управляется FrontPage) - вместо LDAP - обращаясь require valid-user директива.

как только директивы были добавлены как определено выше, пользователи FrontPage будут в состоянии выполнить все операции управления от клиента FrontPage.

Caveats

top

AuthLDAPAuthoritative Directive

Description: препятствовать другим опознавательным модулям подтверждать подлинность пользователя, если этот терпит неудачу
Syntax: AuthLDAPAuthoritative on|off
Default: AuthLDAPAuthoritative on
Context: справочник, .htaccess
Override: AuthConfig
Status: экспериментальный
Module: mod_auth_ldap

набор к off если этот модуль должен позволить другим опознавательным модулям пытаться подтвердить подлинность пользователя, должен установление подлинности с этим модулем терпеть неудачу. Контроль только передан, чтобы понизить модули, если нет никакого отличительного имени или правила, которое соответствует поставляемому имени пользователя (как передано клиентом).

top

AuthLDAPBindDN Directive

Description: дополнительное отличительное имя, чтобы использовать в закреплении с сервером LDAP
Syntax: AuthLDAPBindDN distinguished-name
Context: справочник, .htaccess
Override: AuthConfig
Status: экспериментальный
Module: mod_auth_ldap

дополнительное отличительное имя имело обыкновение связывать с сервером, ища записи. Если не, если, mod_auth_ldap будет использовать анонимное, связывают.

top

AuthLDAPBindPassword Directive

Description: пароль, используемый в conjuction со связывающимся отличительным именем
Syntax: AuthLDAPBindPassword password
Context: справочник, .htaccess
Override: AuthConfig
Status: экспериментальный
Module: mod_auth_ldap

связывающийся пароль, чтобы использовать в соединении со связывающимся отличительным именем. Отметьте, что связывающийся пароль - вероятно уязвимые данные, и должен быть должным образом защищен. Вы должны только использовать AuthLDAPBindDN и AuthLDAPBindPassword если Вы абсолютно нуждаетесь в них, чтобы искать справочник.

top

AuthLDAPCharsetConfig Directive

Description: язык к charset конверсионному файлу конфигурации
Syntax: AuthLDAPCharsetConfig file-path
Context: сервер config
Status: экспериментальный
Module: mod_auth_ldap

AuthLDAPCharsetConfig директива устанавливает местоположение языка к charset конверсионному файлу конфигурации. дорожка файла является относительно ServerRoot . этот файл определяет список языковых расширений к наборам символов. Большинство администраторов использует обеспеченный charset.conv файл, который связывает общие языковые расширения к наборам символов.

файл содержит линии в следующем формате:

Language-Extension charset [ Language-String ] ...

случай расширения не имеет значения. Чистые линии, и линии, начинающиеся с характера мешанины ( # ) игнорируются.

top

AuthLDAPCompareDNOnServer Directive

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 тайник может ускорить сравнение отличительного имени в большинстве ситуаций.

top

AuthLDAPDereferenceAliases Directive

Description: когда будет псевдонимы де-ссылки модуля
Syntax: AuthLDAPDereferenceAliases never|searching|finding|always
Default: AuthLDAPDereferenceAliases Always
Context: справочник, .htaccess
Override: AuthConfig
Status: экспериментальный
Module: mod_auth_ldap

эта директива определяет когда mod_auth_ldap де-сошлется на псевдонимы в течение операций LDAP. Неплатеж always .

top

AuthLDAPEnabled Directive

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 позволенный в или около вершины вашего дерева, но хотят повредить это полностью в определенных местоположениях.

top

AuthLDAPFrontPageHack Directive

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 .

top

AuthLDAPGroupAttribute Directive

Description: признаки LDAP имели обыкновение проверять для членства группы
Syntax: AuthLDAPGroupAttribute attribute
Context: справочник, .htaccess
Override: AuthConfig
Status: экспериментальный
Module: mod_auth_ldap

эта директива определяет, который признаки LDAP используются, чтобы проверить для членства группы. Многократные признаки могут использоваться, определяя эту директиву многократные времена. Если не определенный, то mod_auth_ldap использования member и uniquemember признаки.

top

AuthLDAPGroupAttributeIsDN Directive

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 как член.

top

AuthLDAPRemoteUserIsDN Directive

Description: использовать отличительное имя имени пользователя клиента, чтобы установить переменную окружающей среды REMOTE_USER
Syntax: AuthLDAPRemoteUserIsDN on|off
Default: AuthLDAPRemoteUserIsDN off
Context: справочник, .htaccess
Override: AuthConfig
Status: экспериментальный
Module: mod_auth_ldap

если эта директива собирается на, ценность REMOTE_USER переменная окружающей среды будет собираться полное выдающееся название заверенного пользователя, а не только имя пользователя, которое передавал клиент. Это выключено по умолчанию.

top

AuthLDAPUrl Directive

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, используйте вереницу ldap . для безопасного LDAP, использования ldaps вместо этого. Безопасный LDAP только доступен, если Apache был связан с библиотекой LDAP с поддержкой SSL.
host:port

название/порт ldap сервера (неплатежи к localhost:389 для ldap , и localhost:636 для ldaps ). Чтобы определить многократные, избыточные серверы LDAP, только перечислите все серверы, отделенные местами. mod_auth_ldap будет пробовать соединиться с каждым сервером в свою очередь, пока это не делает успешную связь.

как только связь была сделана к серверу, та связь остается активной для жизни httpd процесс, или пока сервер LDAP понижается.

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

basedn
отличительное имя ветви справочника, где все поиски должны начаться с. По крайней мере, это должно быть вершиной вашего директивного дерева, но могло также определить поддерево в справочнике.
признак
признак, чтобы искать. Хотя RFC 2255 позволяет отделенный запятой список признаков, только первый признак будет использоваться, независимо от того сколько обеспечивается. Если никакие признаки не обеспечиваются, неплатеж должен использовать uid . это - хорошая идея, чтобы выбрать признак, который будет уникален поперек всех записей в поддереве, которое Вы будете использовать.
возможности
возможности поиска. Может быть также one или sub . отметить что возможности base также поддержан RFC 2255, но не поддержан этим модулем. Если возможности не обеспечиваются, или если base возможности определены, неплатеж должен использовать возможности sub .
фильтр
действительный LDAP ищет фильтр. Если не, если, неплатежи к (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.