是否有可能使用基本验证保护和SSO(单点登录)在同一时间?我们使用跨域单点登录(CDSSO),希望通过BasicAuth从公开场景中隐藏我们的登台服务器,并希望通过SSO启用登录。每次我们放入相应的VHost条目以保护服务器时,SSO不再起作用。我们对Apache的虚拟主机条目看起来像这样基本验证和SSO通过OpenAM
<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网络策略代理的日志文件中表明存在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将再次运行。
BasicAuth适用于我们的概念验证系统,但不适用于在DMZ区域中运行的Staging和Production系统。因此,我想这与DMZ的增强安全性有关,也许其中一个防火墙会阻止OpenAM服务器和Web策略代理之间的通信。 – 0x4a6f4672
在SUSE Linux Enterprise Server 11上运行的Apache 2.2.10出现问题。我们对本地系统和我们的概念验证系统(在Ubuntu上运行并且具有Apache 2.2.16(Ubuntu 10.10)或Apache 2.2.14(Ubuntu 10.04)。 – 0x4a6f4672