1

我发现我可以通过下面的代码有没有办法从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服务器不接受匿名请求。

回答

0

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

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

这要看身份验证方案,你是using.From基本方案可以解码用户名和密码,但其他也许不可能的(NTLM)。