我们正试图从Apache httpd实现身份validation代理。 这应该保护使用基本身份validation的应用程序,但是用户应该使用httpd的身份validation进行身份validation(在我们的例子中是mod_auth_cas)。
我可以添加具有适当授权值的RequestHeader,它向应用程序发送凭证,但是只有一个用户进行身份validation才是静态的。
有一些方法来设置RequestHeader的值与脚本? 或者其他一些方法来build立这样的authentication代理?
我已经在考虑将处理代理function的CGI脚本。 但在我看来,就像高速公路一样。
这几乎是一个解决scheme:
RewriteEngine on # Create a RewriteMap to do base64 encoding: RewriteMap base64map "prg:/usr/bin/base64" # Put the base64-encoded user:password string into an environment variable: RewriteRule .* - [E=AUTHN:${base64map:%{LA-U:REMOTE_USER}:%{LA-U:REMOTE_PASS}},NE] # Put the encoded user:password string into the Authorization header: RequestHeader Authorization "Basic %{AUTHN}e"
(请参阅mod_rewrite文档 ,了解为什么需要LA-U 。)
但是还有一个缺点:用户的密码。 在上面我使用了REMOTE_PASS环境variables,就好像那个将会被设置一样,但是通常没有这个variables。
你将不得不得到mod_auth_cas把用户的密码放入一个环境variables,比如说REMOTE_PASS,或者从请求头获取。 没有用户的密码,您没有足够的信息设置授权标头。