有没有办法从Apache2配置中的HTTP授权标头获取密码?
问题描述:
我发现我可以通过下面的代码有没有办法从Apache2配置中的HTTP授权标头获取密码?
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
访问HTTP授权头不幸的是,我不知道如何从解码的base64,然后分裂的用户名和密码。
当然,在apache配置之外很容易做到这一点,但我需要在配置中使用用户名和密码才能将它们传递给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头,检查RFC2617 http://www.ietf.org/rfc/rfc2617.txt
这要看身份验证方案,你是using.From基本方案可以解码用户名和密码,但其他也许不可能的(NTLM)。