【问题标题】:Extending JASIG CAS for Authorization扩展 JASIG CAS 以进行授权
【发布时间】:2016-02-13 21:17:14
【问题描述】:
我必须建立一个集中的身份验证和授权服务。我正在尝试使用 JASIG CAS。但它提到它是一个身份验证协议。我的场景如下。
- 我的应用程序在第一次访问时重定向到 cas 服务器。
- CAS 重定向用户以进行 google 身份验证
- 用户使用所需电子邮件登录并重定向回 CAS
此时我需要在我的本地 jdbc 存储中验证用户是否启用,如果尚未注册用户,并且电子邮件域是 abc.com,我需要自动注册用户。
- CAS 重定向到调用服务
我的服务执行 validateService api 调用。我想在 CAS 的结果响应中获取所请求服务的用户权限
这种情况是否可以通过 CAS 实现,如果 CAS 可以扩展,有人可以建议如何做到这一点,基本上是我需要修改的类
【问题讨论】:
标签:
java
spring
spring-security
cas
jasig
【解决方案1】:
CAS可以实现这个场景吗
Jasig CAS 是高度可定制的,因为它是使用 Spring 框架和 Spring Security 构建的,您可以将其扩展到您的任何需求。
基本上是我需要修改的类
您感兴趣的课程是:
PolicyBasedAuthenticationManager
身份验证子系统的入口点。它接受一个或多个
凭据并将身份验证委托给已配置
AuthenticationHandler 组件。它收集每个结果
尝试并确定有效的安全策略。
验证单个凭据并报告三种可能的凭据之一
结果:成功、失败、未尝试。
将身份验证凭据中的信息转换为安全信息
通常包含附加元数据属性的主体(即
用户详细信息,例如从属关系、组成员身份、电子邮件、显示
名称)。
Jasig CAS 很好 documented。您应该可以在那里找到您需要的所有信息。