Назад | Перейти на главную страницу

Apache HTTPD: разрешить пользователям использовать htpasswd ИЛИ LDAP с определенной группой

Есть связанный вопрос с ответом на 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 со всеми локальными пользователями в нем.

(Примечание: не тестировалось.)