是否可以同时使用BasicAuth保护和SSO(单点登录)?我们使用跨域单点登录 (CDSSO),希望通过 BasicAuth 向公众隐藏我们的登台服务器,并希望通过 SSO 启用登录。每次我们放入相应的 VHost 条目来保护服务器时,SSO 就不再起作用了。我们的 Apache 虚拟主机条目如下所示
<Directory /home/my_user/sites/my_site>
Options -MultiViews
AllowOverride All
Order deny,allow
Deny from all
Allow from 192.168.0.0/16
AuthType Basic
AuthBasicProvider file
AuthName "MyBasicAuth"
AuthUserFile /home/my_user/etc/htpasswd
Require valid-user
Satisfy Any
</Directory>
OpenAM 的 Web 策略代理的日志文件表明在 dsame_check 期间存在某种授权失败(可能是一种心跳消息,以查看代理是否处于活动状态?):
2011-11-04 16:48:16.069 Info 27773:7fb5259550e0 all:
dsame_check_access(): starting...
2011-11-04 16:48:16.069 Debug 27773:7fb5259550e0 all:
get_request_url(): ..
..
2011-11-04 16:48:16.069 Debug 27773:7fb5259550e0 all:
get_request_url(): Returning request URL =
http://..:80/error/HTTP_UNAUTHORIZED.html.var.
在具有策略代理的计算机的 Apache 访问日志中,我们收到以下401 Unauthorized
HTTP 错误(192.168.1.1 是 OpenAM 服务器的本地 IP):
192.168.1.1 - "" [07/Nov/2011:12:42:58 +0100]
"POST /UpdateAgentCacheServlet?shortcircuit=false HTTP/1.1" 401 - "-" "Java/1.6"
我们如何更改配置以启用 BasicAuth和SSO?还是根本不可能?如果我们取消对 Apache Web 服务器的保护,dsame 检查和 SSO 将再次工作。