我发现我可以通过以下代码访问HTTP授权标头
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
不幸的是,我不知道如何从base64解码,然后拆分用户名和密码。
当然,在apacheconfig之外执行此操作非常容易,但我需要在config中输入用户名和密码,以便将它们传递给LDAP授权模块。
事实上,我想做这样的事情:
<Directory "C:/my/directory">
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
AuthType Basic
AuthName "Trac"
AuthBasicProvider "ldap"
AuthLDAPURL "ldap://domain.local:3268/DC=domain,DC=local?sAMAccountName?sub?> (objectClass=user)"
AuthLDAPBindDN %{HTTP_USER}@domain.local
AuthLDAPBindPassword %{HTTP_PASSWORD}
AuthzLDAPAuthoritative off
Require valid-user
</Directory>
我需要这个,因为我们的LDAP服务器不接受匿名请求。
基本上,您应该创建用于授权的专用LDAP用户。
与HTTP_AUTHORIZATION标头相关,请检查RFC2617http://www.ietf.org/rfc/rfc2617.txt
这取决于您使用的身份验证方案。从BASIC方案,您可以解码用户名和密码,但从其他可能不可能(NTLM)。