apache auth: сочетание LDAP и htpasswd

11

Мы используем Apache с mod_svn для обслуживания репозитория Subversion. Apache подключен к серверу LDAP, поэтому все пользователи могут использовать свои доменные пароли. Чтобы сборочный компьютер мог оформить заказ, я хочу иметь дополнительного пользователя, но не могу добавить его через LDAP.

Могу ли я создать установку, где пользователь / pwd должен соответствовать либо серверу LDAP, либо файлу htpasswd?

noamtm
источник

Ответы:

8

попробуй это:

AuthType Basic
AuthName "LDAP and file
AuthBasicProvider file ldap
AuthUserFile /path/to/htpassword/file
AuthLDAPBindDN <your bind dn>
AuthLDAPBindPassword <your password>
AuthLDAPURL "<your ldap url>"
AuthzLDAPAuthoritative off
Require valid-user
Satisfy any

Возможно, вы переключитесь AuthBasicProvider file ldapна AuthBasicProvider ldap file, в зависимости от того, где вы хотите искать в первую очередь.

Кристиан
источник
FWIW, "Удовлетворить кого-либо" в конфу не получилось вообще аутентификации, когда я попробовал это. Однако удаление «Удовлетворить кого-либо» дает ожидаемые / желаемые результаты.
Кит
2

Если вам также необходимо проверить, находится ли пользователь в определенной группе LDAP, вы можете использовать следующее:

AuthType Basic
AuthName "LDAP and file"
AuthBasicProvider file ldap
AuthUserFile /path/to/htpassword/file
AuthLDAPBindDN <your bind dn>
AuthLDAPBindPassword <your password>
AuthLDAPURL "<your ldap url>"
AuthzLDAPAuthoritative off

AuthLDAPGroupAttributeIsDN off
AuthLDAPGroupAttribute memberUid
Require valid-user
Require ldap-group cn=svn,cn=groups,dc=ldapsvr,dc=example,dc=com
Фрэнк Шуберт
источник
1
(Я знаю, что это 5 лет, но это кажется неправильным) Согласно документации, все директивы Require считаются частью блока RequireAny, если не в блоке. Используя это, ваш Require ldap-groupигнорируется
mveroone