美文网首页
CAS服务端/客户端——搭建(Springboot搭建CAS--

CAS服务端/客户端——搭建(Springboot搭建CAS--

作者: 虾米咬小米 | 来源:发表于2020-07-02 18:53 被阅读0次

    1.背景介绍 什么是CAS
    单点登录(SSO),在多系统之间用户只需要登录一次就可以访问所有互相信任的系统

    SSO基础的访问流程:

    1. 访问服务: SSO 客户端发送请求访问应用系统提供的服务资源。

    2. 定向认证: SSO 客户端会重定向用户请求到 SSO 服务器。

    3. 用户认证:用户身份认证。

    4. 发放票据: SSO 服务器会产生一个随机的 Service Ticket 。

    5. 验证票据: SSO 服务器验证票据 Service Ticket 的合法性,验证通过后,允许客户端访问服务。

    6. 传输用户信息: SSO 服务器验证票据通过后,传输用户认证结果信息给客户端

    CAS是一个应用实例,基础流程如下:

    image.png

    CAS分为Server和Client端,Cas Server需要独立部署,主要负责对用户的认证;CAS client 负责处理对客户端受保护资源的访问请求,需要登录的时候重定向到server 端

    2.搭建CAS5.3

    采用JAVA1.8,则建议采用基于CAS5.3版本的,使用Maven工程构建,CAS5.X之后使用的是基于SpringBoot的,模版引擎使用Thymeleaf.

    2.1下载地址

    CAS Server5.3版本,可以下载ZIP包,并解压至自己的目录下

    2.2打包成服务端的war包

    在解压目录下进入cmd,执行 mvn package (前提保证自己的环境有maven),即可在target下生成cas.war包

    2.3 tomcat启动

    cas.war放到tomcat的apache-tomcat-9.0.36\webapps中,启动tomcat

    启动后在即可在tomcat的webapps目录下看到解压后的cas目录

    修改参数:

    • 由于CAS默认使用https,为了方便springboot搭建的客户端采用http访问,需要改为兼容使用http协议

    webapps\cas\WEB-INF\classes\application.properties
    最后一行添加:
    也可以修改端口,默认是https协议8443端口,
    修改默认的登录账号和密码

    ##
    # 修改http 端口
    #
    server.context-path=/cas
    server.port=8080
    
    ##
    #  修改用户名、密码
    #
    cas.authn.accept.users=admin::admin
    #启用记载JSON配置文件
    #打开文件cas\WEB-INF\classes\application.properties
    #增加如下配置
    cas.tgc.secure=false
    cas.serviceRegistry.initFromJson=true
    
    • 在webapps\cas\WEB-INF\classes\services\HTTPSandIMAPS-10000001.json
      支持http
    {
      "@class" : "org.apereo.cas.services.RegexRegisteredService",
      "serviceId" : "^(https|http|imaps)://.*",
      "name" : "HTTPS and IMAPS",
      "id" : 10000001,
      "description" : "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.",
      "evaluationOrder" : 10000
    }
    
    

    cas 访问地址:

    http://localhost:8080/cas

    CAS客户端配置

    
    # CAS客户端配置(就是自己项目)
    
    pom.xml依赖
    
    <dependency>
    <groupId>net.unicon.cas</groupId>
    <artifactId>cas-client-autoconfig-support</artifactId>
    <version>2.1.0-GA</version>
    </dependency>
    
    application.properties配置文件
    客户端1
    server.port=8088
    #cas服务端的地址
    cas.server-url-prefix=[http://localhost:8080/cas](http://localhost:8080/cas)
    #cas服务端的登录地址
    cas.server-login-url=[http://localhost:8080/cas/login](http://localhost:8080/cas/login)
    #当前服务器的地址(客户端)
    cas.client-host-url=[http://localhost:8088](http://localhost:8088)
    #Ticket校验器使用Cas30ProxyReceivingTicketValidationFilter
    cas.validation-type=CAS3
    
    **每个客户端只要修改当前服务器地址就行了**
    如客户端2
    **server.port=8090**
    #cas服务端的地址
    cas.server-url-prefix=[http://localhost:8080/cas](http://localhost:8080/cas)
    #cas服务端的登录地址
    cas.server-login-url=[http://localhost:8080/cas/login](http://localhost:8080/cas/login)
    #当前服务器的地址(客户端)
    **cas.client-host-url=[http://localhost:8090](http://localhost:8090)**
    #Ticket校验器使用Cas30ProxyReceivingTicketValidationFilter
    cas.validation-type=CAS3
    
    配置完成
    没有登陆时[http://localhost:8088](http://localhost:8088)和[http://localhost:8090](http://localhost:8090)访问都会跳到CAS 登陆页
    只要客户端1登陆了,登陆端2就能直接访问,反之也能访问
    
    

    参考:
    CAS5.3单点登录服务端搭建与整合springboot
    CAS服务端搭建和结合Springboot搭建CAS客户端验证单点登录

    相关文章

      网友评论

          本文标题:CAS服务端/客户端——搭建(Springboot搭建CAS--

          本文链接:https://www.haomeiwen.com/subject/wuarqktx.html