使用CAS保护Spring boot Rest服务

使用CAS保护Spring boot Rest服务,rest,spring-security,spring-boot,cas,Rest,Spring Security,Spring Boot,Cas,朋友们 最近,我使用SpringBoot创建了一个web服务应用程序,现在它几乎没有不安全的入口点。(这是一个纯基于rest的应用程序,只有rest入口点,没有任何UI组件) 现在,我想在这个应用程序中添加CAS客户端,以保护rest入口点 我的CAS服务器已准备就绪,并且已启动并正在运行。我已经在我的CAS服务器中配置了CAS Rest协议,以便通过Rest调用访问TGT/ST,我正在计划只使用Rest调用,而不是使用登录页面 因此,当用户试图访问我的rest应用程序时,我将在内部调用CAS

朋友们

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

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

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

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

可用的CAS入口点包括(来自jasig参考文件)

  • POST/cas/v1/tickets HTTP/1.0 username=battags&password=password&additionalParam1=paramvalue
  • POST/cas/v1/tickets/{TGT id}HTTP/1.0 服务={服务url的表单编码参数}
  • 删除/cas/v1/tickets/TGT fdsjfsdfjkalfewrihfdhfaie HTTP/1.0
  • 我想,这一点我不太清楚。如果我错了,请纠正我


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

    您不需要服务票证,除非您想从web服务调用其他服务。通过CAS REST API验证收到的凭据就足够了

    如果您正在寻找一个安全库来通过CAS REST API保护您的web服务,您应该尝试:尤其是此配置:

    您可以使用现有的Spring boot CAS starter:

    这将为您进行配置,并神奇地为您的spring boot应用程序配置CAS身份验证(因此您的应用程序将能够毫不费力地读取
    ST
    PT

    我是的作者,所以我不会影响你们的选择,但和那个由联通开发的项目的主要区别是关于Spring安全集成


    事实上,它完全符合SpringSecurity,因此您将能够使用从SpringSecurity了解的任何功能。然而,我们将实例化和配置Apereo(Jasig)过滤器,这些过滤器不是为Spring security的开箱即用而设计的。

    感谢您的宝贵建议@jleleu我以前从未尝试过pac4j。现在让我试试这个新的。嗨@jlelu,我试过它对我有用。谢谢但我是否需要在所有请求中发送用户凭据(用户名和密码)?我可以使用令牌来验证经过身份验证的用户吗?请澄清一下。CasRestBAsicAuthClient将login/pwd作为基本身份验证,并通过CAS服务器进行身份验证。使用JwtGenerator从经过身份验证的用户配置文件生成令牌。添加带有JwtAuthenticator的ParameterClient以从令牌进行身份验证。有关以下内容的更多帮助: