Apache Auth: Kombination von LDAP und htpasswd

11

Wir verwenden Apache mit mod_svn, um das Subversion-Repo zu bedienen. Apache ist mit einem LDAP-Server verbunden, sodass alle Benutzer ihre Domänenkennwörter verwenden können. Damit die Build-Maschine auschecken kann, möchte ich einen zusätzlichen Benutzer haben, kann ihn jedoch nicht über LDAP hinzufügen.

Kann ich ein Setup erstellen, bei dem der Benutzer / pwd entweder mit dem LDAP-Server oder einer htpasswd-Datei übereinstimmen muss?

noamtm
quelle

Antworten:

8

Versuche dies:

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

Vielleicht wechseln Sie AuthBasicProvider file ldapzu AuthBasicProvider ldap file, je nachdem, wo Sie zuerst suchen möchten.

Christian
quelle
FWIW, "Satisfy any" in der Conf führte zu keiner Authentifizierung, als ich es versuchte. Das Entfernen von "Befriedige alle" führt jedoch zu erwarteten / gewünschten Ergebnissen.
Keith
2

Wenn Sie auch überprüfen müssen, ob sich der Benutzer in einer bestimmten LDAP-Gruppe befindet, können Sie Folgendes verwenden:

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
Frank Schubert
quelle
1
(Ich weiß, dass dies 5 Jahre alt ist, aber es scheint falsch zu sein.) Gemäß der Dokumentation werden alle Require-Direktiven als Teil eines RequireAny-Blocks betrachtet, wenn sie nicht in einem Block enthalten sind. Wenn Sie dies verwenden, wird Ihr Require ldap-groupignoriert
mveroone