Есть связанный вопрос с ответом на apache auth: комбинация LDAP и htpasswd но я хотел бы остановиться на этом подробнее.
Я хочу разрешить пользователям, если они находятся в файле htpasswd или если они находятся в LDAP и являются членами допустимой группы.
Так Require valid-user
из другого вопроса недостаточно строгий, так как он позволил бы любому из LDAP.
При правильной настройке 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 за наиболее актуальный ответ ..
Также возможно использование разных групп, но пользователи аутентифицированы через AuthUserFile
нужно также иметь членство в группе (через AuthGroupFile
). Тогда вы можете использовать что-то вроде:
<RequireAny>
Require Group tehLDAPGroup
Require Group tehAuthUserGroup
</RequireAny>
require group X
, где X
является группой LDAP, а затем дополнительно используйте AuthGroupFile
что определяет группу X
со всеми локальными пользователями в нем.
(Примечание: не тестировалось.)