我正在尝试设置一个也可以执行 LDAP 基本身份验证的 Apache 代理:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
ProxyPreserveHost On
ProxyRequests Off
AllowEncodedSlashes NoDecode
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
<Location />
AuthType Basic
AuthName "LDAP Login for access"
AuthBasicProvider ldap
AuthLDAPBindDN USER@DOMAIN
AuthLDAPBindPassword PASSWORD
AuthLDAPURL ldaps://FQDN:636/CN=..,OU=..?uid?sub
Require valid-user
</Location>
ProxyPass 在没有 AuthType Basic 部分的情况下也可以工作,但是,如果结合使用,BasicAuth 会要求输入凭证,然后服务器会抛出 500 错误,而不会在其 error.log 中记录任何内容
我遗漏了什么吗?
答案1
这个配置对我有用:
<Location />
AuthType Basic
AuthName "LDAP Login"
AuthBasicProvider ldap
AuthLDAPBindDN USER@DOMAIN
AuthLDAPBindPassword PASSWORD
AuthLDAPURL ldap://IP:PORT/OU=...,DC=...,DC=...,DC=intern?uid?sub
Require ldap-group CN=...,OU=...,OU=...,OU=...,DC=...,DC=...,DC=intern
Require valid-user
</Location>
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
ProxyPreserveHost On
ProxyRequests Off
AllowEncodedSlashes NoDecode
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
看起来命令的顺序是相关的。