描述: | 允许使用LDAP目录存储用于HTTP Basic身份验证的数据库。 |
---|---|
状态: | 延期 |
模块标识符: | authnz_ldap_module |
源文件: | mod_authnz_ldap.c |
兼容性: | 在2.1版及更高版本中可用 |
该模块允许身份验证前端,例如
mod_auth_basic
通过ldap目录对用户进行身份验证。
mod_authnz_ldap
支持以下功能:
使用时mod_auth_basic
,将通过AuthBasicProvider
带有ldap
值的指令调用此模块。
此模块根据的配置缓存身份验证和授权结果mod_ldap
。对后备LDAP服务器所做的更改不会立即反映在HTTP Server上,包括但不限于用户锁定/撤消,密码更改或组成员身份更改。有关mod_ldap
高速缓存可调参数的详细信息,请查阅中的指令。
向用户授予访问权分为两个阶段。第一阶段是身份验证,其中mod_authnz_ldap
身份验证提供程序验证用户的凭据有效。这也称为搜索/绑定阶段。第二阶段是授权,其中mod_authnz_ldap
确定是否允许经过身份验证的用户访问所讨论的资源。这也称为比较
阶段。
mod_authnz_ldap
同时注册authn_ldap身份验证提供程序和authz_ldap授权处理程序。可以AuthBasicProvider
使用该ldap
值通过指令启用authn_ldap身份验证提供程序
。该authz_ldap处理器扩展了
Require
通过添加指令的授权类型ldap-user
,ldap-dn
和ldap-group
值。
在身份验证阶段,请mod_authnz_ldap
在目录中搜索与HTTP客户端传递的用户名匹配的条目。如果找到单个唯一匹配项,则mod_authnz_ldap
尝试使用条目的DN加上HTTP客户端提供的密码来绑定到目录服务器。因为它先进行搜索,然后进行绑定,所以通常称为搜索/绑定阶段。这是在搜索/绑定阶段采取的步骤。
AuthLDAPURL
指令中提供的属性和过滤器与HTTP客户端传递的用户名相结合,生成搜索过滤器。在搜索/绑定阶段使用以下指令
AuthLDAPURL |
指定LDAP服务器,基本DN,要在搜索中使用的属性以及要使用的其他搜索过滤器。 |
AuthLDAPBindDN |
在搜索阶段要绑定的可选DN。 |
AuthLDAPBindPassword |
在搜索阶段要绑定的可选密码。 |
在授权阶段,mod_authnz_ldap
尝试确定用户是否被授权访问资源。其中许多检查都需要
mod_authnz_ldap
在LDAP服务器上执行比较操作。这就是为什么此阶段通常称为比较阶段的原因。mod_authnz_ldap
接受以下Require
指令以确定凭据是否可接受:
Require ldap-user
指令,则授予访问权限,并且指令中的用户名与客户端传递的用户名匹配。Require
ldap-dn
指令,则授予访问权限,并且该指令中的DN与从LDAP目录获取的DN匹配。Require ldap-group
指令,则授予访问权限,并且从LDAP目录(或客户端传递的用户名)中提取的DN出现在LDAP组中,或者可能在其子组之一中。Require ldap-attribute
Require ldap-filter
Require
也可以使用可能需要加载其他授权模块的其他值。
Require valid-user
指令,则向所有成功通过身份验证的用户授予访问权限。(要求mod_authz_user
)Require group
指令,并且mod_authz_groupfile
已加载
AuthGroupFile
指令集,
则授予访问权限。mod_authnz_ldap
在比较阶段使用以下指令:
AuthLDAPURL |
URL中指定的属性在该操作的比较操作中Require
ldap-user 使用。 |
AuthLDAPCompareDNOnServer |
确定Require ldap-dn 指令的行为
。 |
AuthLDAPGroupAttribute |
确定在Require ldap-group
指令中用于比较的属性。 |
AuthLDAPGroupAttributeIsDN |
指定在对Require ldap-group 指令进行比较时是使用用户DN还是用户名
。 |
AuthLDAPMaxSubGroupDepth |
确定在Require ldap-group 指令中进行比较时要评估的子组的最大深度。 |
AuthLDAPSubGroupAttribute |
确定在Require ldap-group
指令中进行比较期间获取当前组的子组成员时要使用的属性。 |
AuthLDAPSubGroupClass |
指定LDAP objectClass值,该值用于标识在Require ldap-group 指令的子组处理期间查询的目录对象是否确实是组对象(与用户对象相对)
。 |
Require
在授权阶段使用Apache的指令,以确保允许用户访问资源。mod_authnz_ldap模块扩展的授权类型的ldap-user
,ldap-dn
,
ldap-group
,ldap-attribute
和
ldap-filter
。也可以使用其他授权类型,但可能需要加载其他授权模块。
从v2.4.8开始,LDAP require指令支持表达式。
该Require ldap-user
指令指定哪些用户名可以访问资源。一旦
mod_authnz_ldap
已经从目录中检索唯一的DN,它使用指定的用户名的LDAP比较操作Require ldap-user
,看看该用户名是刚刚取LDAP条目的一部分。通过将多个用户名放在行中并用空格分隔,可以授予多个用户访问权限。如果用户名中有空格,则必须用双引号将其引起来。也可以通过使用多个Require ldap-user
指令来授予多个用户访问权限,每行一个用户。例如,使用AuthLDAPURL
of
ldap://ldap/o=Example?cn
(即cn
用于搜索),可以使用以下Require指令来限制访问:
Require ldap-user "Barbara Jenson" Require ldap-user "Fred User" Require ldap-user "Joe Manager"
由于mod_authnz_ldap
该指令的处理方式,Barbara Jenson可以以Barbara Jenson,Babs Jenson或cn
她在LDAP条目中拥有的任何其他方式登录。只Require
ldap-user
需要一行就可以支持用户条目中属性的所有值。
如果使用该uid
属性而不是cn
上面URL 中的
属性,则以上三行可以压缩为
Require ldap-user bjenson fuser jmanager
该伪指令指定允许其成员访问的LDAP组。它采用LDAP组的专有名称。注意:组名称不要用引号引起来。例如,假定LDAP目录中存在以下条目:
dn: cn=Administrators, o=Example objectClass: groupOfUniqueNames uniqueMember: cn=Barbara Jenson, o=Example uniqueMember: cn=Fred User, o=Example
以下指令将授予对Fred和Barbara的访问权限:
Require ldap-group cn=Administrators, o=Example
如果AuthLDAPMaxSubGroupDepth
将值设置为大于0,则还可以在指定的LDAP组的子组中找到成员。例如,假定LDAP目录中存在以下条目:
dn: cn=Employees, o=Example objectClass: groupOfUniqueNames uniqueMember: cn=Managers, o=Example uniqueMember: cn=Administrators, o=Example uniqueMember: cn=Users, o=Example dn: cn=Managers, o=Example objectClass: groupOfUniqueNames uniqueMember: cn=Bob Ellis, o=Example uniqueMember: cn=Tom Jackson, o=Example dn: cn=Administrators, o=Example objectClass: groupOfUniqueNames uniqueMember: cn=Barbara Jenson, o=Example uniqueMember: cn=Fred User, o=Example dn: cn=Users, o=Example objectClass: groupOfUniqueNames uniqueMember: cn=Allan Jefferson, o=Example uniqueMember: cn=Paul Tilley, o=Example uniqueMember: cn=Temporary Employees, o=Example dn: cn=Temporary Employees, o=Example objectClass: groupOfUniqueNames uniqueMember: cn=Jim Swenson, o=Example uniqueMember: cn=Elliot Rhodes, o=Example
以下指令将允许访问Bob Ellis,Tom Jackson,Barbara Jenson,Fred User,Allan Jefferson和Paul Tilley,但不允许访问Jim Swenson或Elliot Rhodes(因为它们的子组深度为2) :
Require ldap-group cn=Employees, o=Example AuthLDAPMaxSubGroupDepth 1
这个指令的行为是修改的AuthLDAPGroupAttribute
,AuthLDAPGroupAttributeIsDN
,AuthLDAPMaxSubGroupDepth
,AuthLDAPSubGroupAttribute
,和AuthLDAPSubGroupClass
指令。
该Require ldap-dn
指令允许管理员基于专有名称授予访问权限。它指定必须匹配才能授予访问权限的DN。如果从目录服务器检索到的专有名称与中的专有名称匹配Require ldap-dn
,则将授予授权。注意:专有名称不要用引号引起来。
以下指令将授予对特定DN的访问权限:
Require ldap-dn cn=Barbara Jenson, o=Example
该指令的行为由指令修改AuthLDAPCompareDNOnServer
。
该Require ldap-attribute
指令允许管理员基于LDAP目录中经过身份验证的用户的属性来授予访问权限。如果目录中的属性与配置中给定的值匹配,则授予访问权限。
以下指令将授予具有employeeType = active属性的任何人访问权限
Require ldap-attribute employeeType="active"
可以在同一行上用空格分隔指定多个属性/值对,也可以在多个Require ldap-attribute
指令中指定它们
。列出多个属性/值对的效果是“或”运算。如果任何列出的属性值与用户对象中相应属性的值匹配,将授予访问权限。如果属性的值包含空格,则仅该值必须在双引号内。
以下指令将授予具有city属性等于“ San Jose”或status等于“ Active”的任何人的访问权限
Require ldap-attribute city="San Jose" status="active"
该Require ldap-filter
指令允许管理员基于复杂的LDAP搜索过滤器授予访问权限。如果过滤器搜索返回的dn与经过身份验证的用户dn匹配,则授予访问权限。
以下指令将授予拥有手机且在市场部门的任何人访问权限
Require ldap-filter "&(cell=*)(department=marketing)"
Require ldap-filter
伪指令与
Require ldap-attribute
伪指令之间的区别在于,ldap-filter
使用指定的搜索过滤器而不是简单的属性比较对LDAP目录执行搜索操作。如果仅需要简单的属性比较,则由进行的比较操作
ldap-attribute
将比ldap-filter
尤其是在大目录中使用的搜索操作快。
AuthLDAPURL "ldap://ldap1.example.com:389/ou=People, o=Example?uid?sub?(objectClass=*)" Require valid-user
AuthLDAPURL "ldap://ldap1.example.com ldap2.example.com/ou=People, o=Example" Require valid-user
cn
一个目录,这可能会出现问题,因为对on的搜索cn
必须恰好返回一个条目。这就是为什么不推荐使用这种方法的原因:最好选择一个在目录中保证唯一的属性,例如uid
。
AuthLDAPURL "ldap://ldap.example.com/ou=People, o=Example?cn" Require valid-user
AuthLDAPURL ldap://ldap.example.com/o=Example?uid Require ldap-group cn=Administrators, o=Example
AuthLDAPURL ldap://ldap.example.com/o=Example?uid Require ldap-group cn=%{SERVER_NAME}, o=Example
qpagePagerID
。该示例仅向具有字母数字寻呼机的人员(通过其UID进行身份验证)授予访问权限:
AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(qpagePagerID=*) Require valid-user
下一个示例演示了使用过滤器来完成复杂的管理要求的功能。如果没有过滤器,则必须创建一个新的LDAP组并确保该组的成员与寻呼机用户保持同步。这对于过滤器来说是微不足道的。目标是向拥有寻呼机的任何人授予访问权限,并向没有寻呼机但需要访问相同资源的Joe Manager授予访问权限:
AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(|(qpagePagerID=*)(uid=jmanager)) Require valid-user
刚开始时,这最后看起来可能会令人困惑,因此,它有助于根据谁的联系来评估搜索过滤器的外观,如下所示。如果Fred User以as身份连接fuser
,则过滤器将如下所示
(&(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))
只有在定影器具有寻呼机的情况下,以上搜索才会成功。当Joe Manager以jmanager身份连接时,过滤器看起来像
(&(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))
无论jmanager是否 具有寻呼机,上述搜索都将成功。
要使用TLS,请参阅mod_ldap
指令LDAPTrustedClientCert
,LDAPTrustedGlobalCert
和LDAPTrustedMode
。
可以将可选的第二个参数添加到中,
AuthLDAPURL
以覆盖由设置的默认连接类型LDAPTrustedMode
。这将使由ldap:// Url 建立的连接升级为同一端口上的安全连接。
要使用SSL,请参阅mod_ldap
指令LDAPTrustedClientCert
,LDAPTrustedGlobalCert
和LDAPTrustedMode
。
要指定安全的LDAP服务器,请在
指令中使用ldaps://AuthLDAPURL
而不是ldap://。
当此模块执行认证时,AuthLDAPURL
伪指令中指定的ldap属性将放置在带有前缀“ AUTHENTICATE_”的环境变量中。
当此模块执行授权时,AuthLDAPURL
伪指令中指定的ldap属性将放置在带有前缀“ AUTHORIZE_”的环境变量中。
如果属性字段包含用户名,用户的常用名和电话号码,则CGI程序将有权访问此信息,而无需进行第二次独立的LDAP查询来收集此附加信息。
这有可能极大简化某些Web应用程序中所需的编码和配置。
Active Directory安装可能同时支持多个域。为了在域之间区分用户,可以将名为“用户主体名称”(UPN)的标识符添加到目录中的用户条目。该UPN通常采用用户帐户名的形式,后跟特定域的域组件,例如somebody@nz.example.com。
您可能希望将mod_authnz_ldap
模块配置为对组成Active Directory林的任何域中存在的用户进行身份验证。这样,
可以同时使用同一查询对
somebody@nz.example.com和someone@au.example.com进行身份验证。
为了使之实用,Active Directory支持全局编录的概念。此全局编录是Active Directory林中所有Active Directory服务器的选定属性的只读副本。通过查询全局目录,可以在单个查询中查询所有域,而查询不会跨服务器访问速度较慢的链接。
如果启用,则全局编录是运行在端口3268(对于SSL为3269)上的独立目录服务器。要搜索用户,请在子树中使用空的搜索根搜索属性userPrincipalName,如下所示:
AuthLDAPBindDN apache@example.com AuthLDAPBindPassword password AuthLDAPURL ldap://10.0.0.1:3268/?userPrincipalName?sub
用户将需要输入他们的用户主体名称作为登录名,形式为somebody@nz.example.com。
通常,FrontPage使用特定于FrontPage Web的用户/组文件(即mod_authn_file
和
mod_authz_groupfile
模块)来处理所有身份验证。不幸的是,不可能仅通过添加适当的指令来更改为LDAP身份验证,因为它会破坏FrontPage客户端中的Permissions表单,后者试图修改基于文本的标准授权文件。
创建FrontPage网站后,向其添加LDAP身份验证就是向在网站中创建的每个 .htaccess
文件添加以下指令的问题
AuthLDAPURL "the url" AuthGroupFile "mygroupfile" Require group "mygroupfile"
FrontPage通过将Require
valid-user
指令添加到.htaccess
文件来限制对Web的访问。Require valid-user
对于LDAP而言,该指令将对任何有效的用户成功。这意味着在LDAP目录中具有条目的任何人都被视为有效用户,而FrontPage仅将本地用户文件中的那些人视为有效用户。通过用组文件授权替换ldap-group,Apache可以在处理授权用户时查阅本地用户文件(由FrontPage管理)而不是LDAP。
如上指定添加指令后,FrontPage用户将能够从FrontPage客户端执行所有管理操作。
mod_authn_file
用户文件中同样有效的属性。用户ID是理想的选择。mod_auth_basic
,
mod_authn_file
并
mod_authz_groupfile
以使用FrontPage支持。这是因为Apache仍将使用mod_authz_groupfile
组文件来确定用户对FrontPage网站的访问范围。.htaccess
文件中。试图将它们放入内部<Location>
或<Directory>
指令将不起作用。这是因为mod_authnz_ldap
必须能够获取AuthGroupFile
FrontPage .htaccess
文件中找到的指令,以便它知道在哪里寻找有效的用户列表。如果mod_authnz_ldap
指令.htaccess
与FrontPage指令不在同一个
文件中,则该破解将无法进行,因为mod_authnz_ldap
将永远没有机会处理该.htaccess
文件,并且将无法找到FrontPage管理的用户文件。描述: | 指定授权期间设置的环境变量的前缀 |
---|---|
句法: | AuthLDAPAuthorizePrefix prefix |
默认: | AuthLDAPAuthorizePrefix AUTHORIZE_ |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
兼容性: | 在2.3.6版和更高版本中可用 |
此伪指令使您可以覆盖在LDAP授权期间用于环境变量设置的前缀。如果指定了AUTHENTICATE_,则这些环境变量的使用者将看到相同的信息,而LDAP是否执行了身份验证,授权或同时执行了两者。
Require valid-user
。
描述: | 确定当可以将用户映射到DN但服务器无法成功绑定用户凭据时是否使用其他身份验证提供程序。 |
---|---|
句法: | AuthLDAPBindAuthoritative off|on |
默认: | AuthLDAPBindAuthoritative on |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
默认情况下,仅当无法将用户映射到DN时才查询后续身份验证提供程序,但如果可以将用户映射到DN且无法使用LDAP绑定验证其密码就不会查询。如果AuthLDAPBindAuthoritative
设置为off,则LDAP绑定(使用当前用户的凭据)由于任何原因失败时,其他已配置的身份验证模块将有机会验证用户。
这允许同时存在于LDAP中的用户以及
AuthUserFile
在LDAP服务器可用但用户帐户已锁定或密码不可用时进行身份验证的用户。
描述: | 绑定到LDAP服务器时使用的可选DN |
---|---|
句法: | AuthLDAPBindDN distinguished-name |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
搜索条目时用于绑定到服务器的可选DN。如果未提供,mod_authnz_ldap
将使用匿名绑定。
描述: | 与绑定DN结合使用的密码 |
---|---|
句法: | AuthLDAPBindPassword password |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
兼容性: | exec:在2.4.5中添加。 |
与绑定DN结合使用的绑定密码。请注意,绑定密码可能是敏感数据,应予以适当保护。如果绝对需要它们AuthLDAPBindDN
,AuthLDAPBindPassword
则仅应使用和搜索目录。
如果该值以exec开头:将会执行结果命令,并且程序返回到标准输出的第一行将用作密码。
#Password used as-is AuthLDAPBindPassword secret #Run /path/to/program to get my password AuthLDAPBindPassword exec:/path/to/program #Run /path/to/otherProgram and provide arguments AuthLDAPBindPassword "exec:/path/to/otherProgram argument1"
描述: | 字符集转换配置文件的语言 |
---|---|
句法: | AuthLDAPCharsetConfig file-path |
内容: | 服务器配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
该AuthLDAPCharsetConfig
指令设置的语言字符集转换配置文件的位置。文件路径是相对于的ServerRoot
。该文件指定字符集的语言扩展列表。大多数管理员使用提供的charset.conv
文件,该文件将公共语言扩展名与字符集相关联。
该文件包含以下格式的行:
Language-Extension charset [Language-String] ...
扩展名的大小写无关紧要。空行和以井号(#
)开头的行将被忽略。
描述: | 使用经过身份验证的用户的凭据执行授权比较 |
---|---|
句法: | AuthLDAPCompareAsUser on|off |
默认: | AuthLDAPCompareAsUser off |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
兼容性: | 在2.3.6版和更高版本中可用 |
设置并mod_authnz_ldap
验证用户身份后,用于授权的LDAP比较将使用已验证用户的查询专有名称(DN)和HTTP基本身份验证密码,而不是服务器配置的凭据。
的LDAP的属性,LDAP的用户,和LDAP的组(只有单级)授权检查使用比较。
如果启用了此指令,则仅对嵌套组处理期间执行的比较有效
AuthLDAPSearchAsUser
。
仅当LDAP服务器不接受匿名比较并且不能使用专用时,才应使用此伪指令
AuthLDAPBindDN
。
描述: | 使用LDAP服务器比较DN |
---|---|
句法: | AuthLDAPCompareDNOnServer on|off |
默认: | AuthLDAPCompareDNOnServer on |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
设置后,mod_authnz_ldap
将使用LDAP服务器比较DN。这是比较DN的唯一简单方法。 mod_authnz_ldap
将在目录中搜索由Require dn
伪指令指定的DN ,然后检索DN并将其与从用户条目中检索的DN进行比较。如果未设置此指令,则
mod_authnz_ldap
仅进行字符串比较。通过这种方法可能会得到假阴性,但速度要快得多。请注意,mod_ldap
在大多数情况下,缓存可以加快DN比较。
描述: | 模块何时取消引用别名 |
---|---|
句法: | AuthLDAPDereferenceAliases never|searching|finding|always |
默认: | AuthLDAPDereferenceAliases always |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
该伪指令指定mod_authnz_ldap
在LDAP操作期间何时取消引用别名。默认值为
always
。
描述: | LDAP属性用于标识组的用户成员。 |
---|---|
句法: | AuthLDAPGroupAttribute attribute |
默认: | AuthLDAPGroupAttribute member uniqueMember |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
此伪指令指定用于检查组中用户成员的LDAP属性。通过多次指定此伪指令可以使用多个属性。如果未指定,则mod_authnz_ldap
使用member
和
uniqueMember
属性。
描述: | 检查组成员身份时使用客户端用户名的DN |
---|---|
句法: | AuthLDAPGroupAttributeIsDN on|off |
默认: | AuthLDAPGroupAttributeIsDN on |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
设置为时on
,此伪指令指示在检查组成员身份时使用客户端用户名的专有名称。否则,将使用用户名。例如,假设客户端发送了用户名bjenson
,该用户名对应于LDAP DN cn=Babs Jenson,
o=Example
。如果设置了此伪指令,
mod_authnz_ldap
将检查该组是否
cn=Babs Jenson, o=Example
具有成员身份。如果未设置此指令,mod_authnz_ldap
则将检查该组是否bjenson
为成员。
描述: | 确定服务器是否使用基本身份验证用户自己的用户名而不是匿名或使用服务器的硬编码凭据来执行初始DN查找 |
---|---|
句法: | AuthLDAPInitialBindAsUser off|on |
默认: | AuthLDAPInitialBindAsUser off |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
兼容性: | 在2.3.6版和更高版本中可用 |
默认情况下,服务器将匿名身份验证或使用专用用户名和密码将基本身份验证用户名转换为LDAP专有名称(DN)。该指令强制服务器使用传入用户提供的逐字用户名和密码来执行初始DN搜索。
如果逐字用户名不能直接绑定,但需要进行一些修饰,请参阅
AuthLDAPInitialBindPattern
。
仅当LDAP服务器不接受匿名搜索并且您不能使用专用时,才应使用此伪指令
AuthLDAPBindDN
。
描述: | 指定绑定到LDAP服务器以执行DN查找时要使用的基本身份验证用户名的转换 |
---|---|
句法: | AuthLDAPInitialBindPattern regex substitution |
默认: | AuthLDAPInitialBindPattern (.*) $1 (remote username used verbatim) |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
兼容性: | 在2.3.6版和更高版本中可用 |
如果AuthLDAPInitialBindAsUser
设置为
ON,则将根据正则表达式和替换参数来转换基本身份验证用户名。
将正则表达式参数与当前的基本身份验证用户名进行比较。替换参数可以包含反向引用,但没有其他变量插值。
仅当LDAP服务器不接受匿名搜索并且您不能使用专用时,才应使用此伪指令
AuthLDAPBindDN
。
AuthLDAPInitialBindPattern (.+) $1@example.com
AuthLDAPInitialBindPattern (.+) cn=$1,dc=example,dc=com
描述: | 指定在中断用户搜索之前将评估的最大子组嵌套深度。 |
---|---|
句法: | AuthLDAPMaxSubGroupDepth Number |
默认: | AuthLDAPMaxSubGroupDepth 10 |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
兼容性: | 在2.3.0版和更高版本中可用 |
当将此伪指令设置为非零值X
并结合使用Require ldap-group someGroupDN
伪指令时,将搜索提供的用户凭据作为someGroupDN
目录对象的成员或当前组的任何组成员,直到达到X
指定的最大嵌套级别该指令。
有关Require ldap-group
更多详细示例,请参见本部分。
当AuthLDAPSubGroupAttribute
与重叠时
AuthLDAPGroupAttribute
(默认情况下以及常见LDAP模式的要求),未缓存的大组子组搜索可能非常慢。如果使用大的非嵌套组,则设置
AuthLDAPMaxSubGroupDepth
为零。
描述: | 使用在用户查询期间返回的属性的值来设置REMOTE_USER环境变量 |
---|---|
句法: | AuthLDAPRemoteUserAttribute uid |
默认: | none |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
如果设置了此伪指令,那么
REMOTE_USER
环境变量的值将被设置为指定属性的值。确保此属性包含在AuthLDAPURL
定义的属性列表中,否则此伪指令将无效。如果存在,此指令优先于AuthLDAPRemoteUserIsDN
。如果您希望人们使用电子邮件地址登录网站,但是后端应用程序将用户名用作用户ID,则此指令很有用。
描述: | 使用客户端用户名的DN设置REMOTE_USER环境变量 |
---|---|
句法: | AuthLDAPRemoteUserIsDN on|off |
默认: | AuthLDAPRemoteUserIsDN off |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
如果此指令设置为on,则REMOTE_USER
环境变量的值
将设置为已认证用户的完整专有名称,而不仅仅是客户端传递的用户名。默认情况下处于关闭状态。
描述: | 使用经过身份验证的用户的凭据执行授权搜索 |
---|---|
句法: | AuthLDAPSearchAsUser on|off |
默认: | AuthLDAPSearchAsUser off |
内容: | 目录.htaccess |
覆写: | 验证配置 |
状态: | 延期 |
模块: | mod_authnz_ldap |
兼容性: | 在2.3.6版和更高版本中可用 |
设置并mod_authnz_ldap
验证用户身份之后,LDAP搜索授权将使用已验证用户的查询专有名称(DN)和HTTP基本身份验证密码,而不是服务器配置的凭据。
在LDAP过滤器和LDAP-DN授权检查使用搜索。
如果启用了此指令,则仅对嵌套组处理期间执行的比较有效
AuthLDAPCompareAsUser
。
仅当LDAP服务器不接受匿名搜索并且您不能使用专用时,才应使用此伪指令
AuthLDAPBindDN
。