【问题标题】:BasicAuth and SSO through OpenAM通过 OpenAM 的 BasicAuth 和 SSO
【发布时间】:2015-03-09 20:59:20
【问题描述】:

是否可以同时使用 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 网络策略代理的日志文件表明存在某种 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 区域中运行的暂存和生产系统。因此,我想这与 DMZ 的增强安全性有关,可能其中一个防火墙阻止了 OpenAM 服务器和 Web 策略代理之间的通信。
  • 在 SUSE Linux Enterprise Server 11 上运行的 Apache 2.2.10 会出现问题。我们的本地系统和在 Ubuntu 上运行并具有 Apache 2.2 的概念验证系统没有问题.16 (Ubuntu 10.10) 或 Apache 2.2.14 (Ubuntu 10.04)。

标签: apache single-sign-on basic-authentication openam


【解决方案1】:

HttpAuthentication 模块可以通过 Rails 框架本身在更高级别添加 BasicAuth 保护。

这解决了我的问题,因为 Apache 和 Apache 代理不知道此级别的保护。

class ApplicationController
http_basic_authenticate_with :name => "..", :password => ".." 

可以添加if Rails.env.staging?,仅针对特定环境启用此保护。

【讨论】:

    猜你喜欢
    • 2014-07-04
    • 1970-01-01
    • 2015-03-15
    • 2017-11-23
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    相关资源
    最近更新 更多