使用CAS保护Spring Boot Rest服务

4

朋友们,

最近我使用spring-boot创建了一个web服务应用程序,现在它有一些不安全的入口点。(这是一个纯粹的基于rest的应用程序,只有rest入口点,没有任何UI组件)。

现在我想为这个应用程序添加CAS客户端以保护rest入口点。

我的CAS服务器已经准备好并正在运行。我已经在我的CAS服务器中配置了CAS Rest协议,以通过rest调用访问TGT/ST,并且我计划仅使用rest调用而不是使用登录页面。

因此,当用户尝试访问我的rest应用程序时,我将内部调用CAS rest入口点(使用restTemplate)来验证用户凭据并生成TGT和ST。

可用的CAS入口点如下(来自jasig参考文档):

  1. POST /cas/v1/tickets HTTP/1.0 username=battags&password=password&additionalParam1=paramvalue
  2. POST /cas/v1/tickets/{TGT id} HTTP/1.0 service={form encoded parameter for the service url}
  3. DELETE /cas/v1/tickets/TGT-fdsjfsdfjkalfewrihfdhfaie HTTP/1.0

我认为,我对这部分有点清楚。如果我错了,请纠正我。

现在我的问题是,我应该怎么做才能在我的spring boot应用程序中添加一个ST票证验证器?我需要使用spring-security添加任何过滤器吗?还是我需要调用其他rest api来验证ST?请指导我进一步操作。

2个回答

3
您可以使用现有的Spring Boot Cas Starter: 这将为您配置并使您的Spring Boot应用程序与CAS身份验证(因此,您的应用程序将能够轻松读取ST或PT)神奇地连接。
我是cas security spring boot starter的作者,所以我不会影响您的选择,但那个项目和由Unicon开发的cas client autoconfig support的主要区别在于 Spring Security 集成。
实际上,cas security spring boot starter完全符合 spring security ,因此您将能够使用您从 spring security 知道的任何功能。而cas client autoconfig support将实例化并配置 Apereo(Jasig)过滤器,而这不是为了与 Spring security 开箱即用而设计的。

1

感谢您宝贵的建议@jleleu。我之前没有尝试过pac4j。现在让我来试试这个新的吧。 - Sasikumar
嗨@jleleu,我已经尝试过spring-webmvc-pac4j-boot-demo,它对我有效。谢谢。但是,我需要在所有请求中发送用户凭据(用户名和密码)吗?我能否使用令牌来验证已认证的用户?请澄清一下。 - Sasikumar
当然。CasRestBAsicAuthClient以基本身份验证的方式接受登录/密码,并通过CAS服务器进行身份验证。使用JwtGenerator从经过身份验证的用户配置文件生成令牌。添加一个带有JwtAuthenticator的ParameterClient来使用令牌进行身份验证。更多帮助,请访问:https://groups.google.com/forum/?hl=en#!forum/pac4j-users - jleleu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接