有没有办法从Apache2配置中的HTTP授权头获取密码?

时间:2011-06-03 12:22:52

标签: apache passwords apache2 basic-authentication http-basic-authentication

我发现我可以通过以下代码访问HTTP Authorization标头

RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

不幸的是我不明白如何从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服务器不接受匿名请求。

1 个答案:

答案 0 :(得分:0)

基本上,您应该创建专用的LDAP用户进行授权。

与HTTP_AUTHORIZATION标头相关,请检查RFC2617 http://www.ietf.org/rfc/rfc2617.txt

这取决于您使用的是哪种身份验证方案。从BASIC方案中,您可以解码USERNAME和PASSWORD,但其他可能无法解码(NTLM)。