中央身份验证服务 (CAS) 可以进行授权吗?

信息安全 Web应用程序 sso
2021-08-12 17:31:58

我有一些我试图通过 CAS 绑定的 Web 应用程序,但我对授权有点困惑,我读到 CAS 不应该这样做。然而,我看到类似群体的东西,但不知道它们是什么。

无论如何,我的情况很常见,如下所示:

我们需要限制对将支持 SSO 的每个应用程序的访问。在我们的每个应用程序中,都有角色。这些角色用于阻止某些用户访问站点的各个部分。此外,应该允许管理员用户为用户分配对他们作为管理员的应用程序的访问权限。此外,一个系统的管理员可能不是另一个系统的管理员。CAS能否满足所有这些场景?还是我应该研究一种完全不同类型的 SSO?

- 解释 -

CAS - http://www.jasig.org/cas

Central Authentication Service 项目,通常称为 CAS。CAS 是最初由耶鲁大学创建的身份验证系统,旨在为应用程序提供一种可信的方式来验证用户身份。CAS 于 2004 年 12 月成为 Jasig 项目。

4个回答

不,CAS 只是一个Authentication Service,但是您当然可以使用该机制来实施 Authorization ,这是为您的 CAS 进行身份验证的基础。

假设您使用 LDAP 对 CAS 帐户进行身份验证。然后,对于像你这样的要求......

您可以在 LDAP 中创建用户组并将各自的用户 ID 分配给他们的组。

现在,在 Web 应用程序中,您通过 CAS 保持登录,该 CAS 成功联系 LDAP(或您在后端拥有的任何 Auth-Mechanism)并获取分配给用户的用户组。

现在,根据获取的用户组,您可以允许/禁止访问网络应用程序功能。

首先:CAS - http://www.jasig.org/cas

Central Authentication Service 项目,通常称为 CAS。CAS 是最初由耶鲁大学创建的身份验证系统,旨在为应用程序提供一种可信的方式来验证用户身份。CAS 于 2004 年 12 月成为 Jasig 项目。

第二:不,我不认为它可以做授权。我们在这里使用它,并且在 CAS 对某些用户进行身份验证后,我们有不同的系统来进行授权。

简短的回答是不,授权不是 CAS 的工作,它应该只用于身份验证。

也就是说,有很多方法可以在身份验证/授权场景中使用 CAS。我自己现在正在研究这样的自定义解决方案。我相信有办法做一些弹簧安全魔法来解决它,但我现在实现它的方式只是通过使用自定义角色过滤器来保护我的应用程序,它检查是否存在传递给使用 Java 的 CAS 客户端库应用程序。因此,在 tomcat 中保护我的应用程序所需要做的就是包含 CAS 客户端 jar、我的自定义过滤器 jar 并在我的 web.xml 中指定要保护的资源。

随时询问您是否需要进一步的指导。

CAS 只是执行身份验证。授权取决于服务提供商。对于旧版本的 CAS,您可以使用SAML 验证端点从 CAS 获取属性。使用新的 jasig-CAS 4.0 服务器,您可以从 CAS 3.0 协议中获取属性。

这仍然意味着授权取决于服务,但服务能够从 CAS 请求属性,因此它永远不需要接触您的后端 LDAP 存储、数据库等。阻止直接访问您的内部目录服务可能看起来不像这样在您的内部网络上很重要,但请考虑服务提供商是第 3 方的情况。CAS 允许您的用户向您进行身份验证,并且您选择允许服务提供商的相关属性(例如组成员身份)。该服务负责强制执行这些角色,但您仍然最终控制访问。