使用RAILS单点登录认证和授权

时间:2010-12-10 06:07:27

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

我正在使用单一登录身份验证方法,该方法位于我的rails应用程序之前。在登录企业单点登录服务之前,访问权被完全拒绝。

我现在想要将一些控制器锁定到一组选定的管理员,我想知道最好的方法是什么。

我是否应该创建管理员控制器来管理谁有权访问,然后根据此表格检查已登录的用户凭据

3 个答案:

答案 0 :(得分:1)

查看CanCan

答案 1 :(得分:1)

您可以使用此处描述的声明式授权:

Declarative Authorization

但是Cancan变得非常容易。

答案 2 :(得分:0)

管理局

看看我的新宝石Authority。它的访问控制是通过简单的Ruby方法完成的,因此你可以绝对使用任何你知道如何在Ruby中运行的逻辑。

单点登录

可以正常工作

您描述的情况是我们为此制作的原始情况:我们已经有一个SSO应用程序负责创建用户和分配角色的CRUD,例如“Carla是App X中的管理员;在App Y中她是工人和销售人员。“

当Carla试图访问App Y时,如果她已登录,它会告诉App Y“这是Carla:她已登录,她有以下角色。”然后由App Y决定这些角色实际上让她做了什么。这个逻辑根本没有打到数据库;我们实际上比较了YAML文件中提供的角色列表和权限。

这只是您可以使用Authority实现的逻辑的一个示例,但实际上它是开放的。

分组模型

在您的情况下,如果您使用了权限,我建议您在StandardAuthorizer下对某些模型进行分组,在AdminAuthorizer下对其他模型进行分组。有关详细说明,请查看README