Rails:基于会话的单点登录认证

时间:2010-12-14 00:25:13

标签: ruby-on-rails authentication authorization roles single-sign-on

我在rails应用程序前面使用单一登录身份验证系统,因此在通过我们的业务身份验证系统进行身份验证之前,您根本无法访问该应用程序。

一旦经过身份验证,我想设置基于角色的授权,但我相信我仍然需要设置某种用户模型才能实现。

我热衷于使用cancan进行授权,并且可能使用角色的简单角色。但是如何注册当前登录的用户呢?到目前为止,我一直在访问会话变量。

我无法使用角色的会话变量,因为我对单点登录系统没有任何控制权。

我已经搜索了一些简单但如何找不到的。

1 个答案:

答案 0 :(得分:0)

我为管理员创建了一个控制器,并将所有管理员用户输入到该管理员中,并且我只是实施非常基本的授权,例如在ryan bates早期的铁路广播:http://railscasts.com/episodes/20-restricting-access

我限制每个控制器和视图中的访问权限。我觉得它有点脏,但它有效。

在管理检查功能中,我检查会话用户凭据是否在表中:

helper_method :admin?

def admin?
  admin = Admin.find_all_by_username(request.env["SPEP_ATTR_uid"])
  if admin.empty?
    false
  else
    true
  end
end

def authorize
  unless admin?
    flash[:error] = "unauthorized access"
    redirect_to home_url
    false
  end
end
相关问题