Apache HTTPD:允许 htpasswd 或 LDAP 中的特定组用户

Apache HTTPD:允许 htpasswd 或 LDAP 中的特定组用户

有一个相关问题,答案如下:apache auth:LDAP 和 htpasswd 的组合但我想进一步阐述这一点。

如果用户在 htpasswd 文件中或者在 LDAP 中并且属于有效组的成员,我希望允许用户访问。

因此,Require valid-user从另一个问题来看,这并不足够严格,因为它允许任何人来自 LDAP。

答案1

通过有效的 AuthnzLDAP 设置,可以要求 ldap-group,如下所示:

  Require ldap-group cn=Administrators, o=Airius

http://httpd.apache.org/docs/current/mod/mod_authnz_ldap.html#reqgroup以供参考。

值得注意的是,您还可以要求 ldap-dn、ldap-attribute 甚至 ldap-filter。后者还可用于要求 ldap-group,如下所示:

  Require ldap-filter &(memberof=cn=Administrators,o=Airius)

..这对于生成复杂的基于属性的需求最有用:

  Require ldap-filter &(eduPersonPrimaryAffiliation=*Staff)(objectClass=eduPrincipal)

感谢评论者@james-yale 给出最相关的答案。

答案2

require group X,其中X是 LDAP 组,然后另外使用AuthGroupFile定义X其中包含所有本地用户的组。

(注意:未经测试。)

答案3

也可以使用不同的组,但通过 进行身份验证的用户AuthUserFile也需要具有组成员身份(通过AuthGroupFile)。然后您可以使用类似以下内容:

<RequireAny>
    Require Group tehLDAPGroup
    Require Group tehAuthUserGroup
</RequireAny>

相关内容