cas单点登录原理解析_cas单点登录 优劣

cas单点登录原理解析_cas单点登录 优劣keytool -genkey -alias cas -keyalg RSA -keysize 2048 -keypass 123456 -st

前言

最近这几天在研究CAS 今天终于在本地部署成功了 今天写一篇文章记录下

原理简介

SSO单点登录

在多个相互信任的系统中,用户只需要登录一次就可以访问其他受信任的系统。

cas单点登录原理解析_cas单点登录 优劣

新浪微博与新浪博客是相互信任的应用系统。

  • 当用户首次访问新浪微博时,新浪微博识别到用户未登录,将请求重定向到认证中心,认证中心也识别到用户未登录,则将请求重定向到登录页。
  • 当用户已登录新浪微博访问新浪博客时,新浪博客识别到用户未登录,将请求重定向到认证中心,认证中心识别到用户已登录,返回用户的身份,此时用户无需登录即可使用新浪博客。
  • 只要多个系统使用同一套单点登录框架那么它们将是相互信任的。
cas单点登录原理解析_cas单点登录 优劣

CAS包含CAS Client 和 CAS Server两部分

  • CAS Client:要使用单点登录的Web应用,将与同组下的Web应用构成相互信任的关系,只需在web应用中添加CAS提供的Listener和Filter即可成为CAS Client ,其主要负责对客户端的请求进行登录校验、重定向和校验ticket工作。
  • CAS Server:主要负责对用户的用户名/密码进行认证,颁发票据等,需要单独的进行部署。同组下的任意一个Web应用登录后其他应用都不需要登录即可使用。

搭建CAS服务端

环境准备

jdk1.8、tomcat9、maven3+、idea

下载springboot5.x版本 cas-server代码

git clone https://gitee.com/pingfanrenbiji/cas-overlay-template.git -b 5.2导入idea中 目录结构为
cas单点登录原理解析_cas单点登录 优劣

tomcat启动

cas单点登录原理解析_cas单点登录 优劣

cas单点登录原理解析_cas单点登录 优劣

访问

cas单点登录原理解析_cas单点登录 优劣

现在需要解决页面上的2个报红个就是说你没用HTTPS登录,另一个就是你现在只有一个写死的用户,目前这个服务端只能看看,没什么实际用途。

https配置

  • 生成服务器端的keysore文件
keytool -genkey -alias cas -keyalg RSA -keysize 2048 -keypass 123456 -storepass 123456 -keystore /Users/mengfanxiao/Documents/project/person/springboot/shiro-cas/cas/keystore/liuyx.keystore -dname "CN=cas.example.org,OU=liuyx.com,O=liuyx,L=JiNan,ST=JiNan,C=CN"
  • 配置域名
sudo vim /etc/hosts127.0.0.1  cas.example.org
  • 配置tomcat
conf/server.xml注视掉8080端口访问<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true">        <SSLHostConfig>           <Certificate certificateKeystoreFile="/Users/mengfanxiao/Documents/project/person/springboot/shiro-cas/cas/keystore/liuyx.keystore" type="RSA" certificateKeystoreType="JKS" certificateKeystorePassword="123456"/>        </SSLHostConfig></Connector>
cas单点登录原理解析_cas单点登录 优劣

登陆用户从数据库中读取

数据库文件及账号数据
cas单点登录原理解析_cas单点登录 优劣

cas单点登录原理解析_cas单点登录 优劣

再次访问

https://cas.example.org:8443/cas_overlay_war/login
cas单点登录原理解析_cas单点登录 优劣

cas单点登录原理解析_cas单点登录 优劣

搭建CAS客户端

下载官方demo client

https://gitee.com/pingfanrenbiji/cas-sample-java-webapp.git目录结构
cas单点登录原理解析_cas单点登录 优劣

地址配置

cas单点登录原理解析_cas单点登录 优劣

cas单点登录原理解析_cas单点登录 优劣

生成客户端访问服务端的证书

我是在本地电脑进行测试的 所以客户端和服务器端都是在同一太电脑上
  • 通过服务端证书生成客户端证书
keytool -exportcert -alias cas -keystore /Users/mengfanxiao/Documents/project/person/springboot/shiro-cas/cas/keystore/liuyx.keystore -file /Users/mengfanxiao/Documents/project/person/springboot/shiro-cas/cas/keystore/liuyx.keystore.cer -storepass 123456
  • 将客户端证书导入客户端所在的服务器上的jdk环境中
sudo keytool -import -alias cas -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/jre/lib/security/cacerts -file /Users/mengfanxiao/Documents/project/person/springboot/shiro-cas/cas/keystore/liuyx.keystore.cer默认密码:changeit
  • 查看证书文件
keytool -list -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/jre/lib/security/cacerts
  • 删除证书文件
keytool -delete -alias cas -keystore  /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/jre/lib/security/cacerts

tomcat启动

cas单点登录原理解析_cas单点登录 优劣

cas单点登录原理解析_cas单点登录 优劣

访问

https://localhost:8444/cas_sample_java_webapp_war_exploded/
  • 第一次访问
cas单点登录原理解析_cas单点登录 优劣

输入用户名和密码之后
cas单点登录原理解析_cas单点登录 优劣

  • 再一次访问
直接略过授权页面
cas单点登录原理解析_cas单点登录 优劣

配置http方式访问

  • 配置参数
cas单点登录原理解析_cas单点登录 优劣

cas单点登录原理解析_cas单点登录 优劣

  • 访问
http://localhost:8081/cas_sample_java_webapp_war_exploded/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/12064.html

(0)

相关推荐

  • mysql-connector-java与mysql以及JDK的对应版本「建议收藏」

    mysql-connector-java与mysql以及JDK的对应版本「建议收藏」以下内容来自官方地址:https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html,Connector/J 6.0版本…

    2023-02-11
    109
  • 如何在Linux上运行Python文件

    如何在Linux上运行Python文件Python是一种常用的编程语言,尤其在数据科学、人工智能等领域中应用广泛。对于Linux操作系统的用户而言,运行Python文件也是常见的操作之一。下面将从多个方面对如何在Linux上运行Python文件进行详细阐述。

    2024-05-16
    10
  • mysql体系架构有哪几层_sql去重保留一条

    mysql体系架构有哪几层_sql去重保留一条对于一个服务端开发来说 MYSQL 可能是他使用最熟悉的数据库工具,然而,大部分的Java工程师对MySQL的了解和掌握程度,大致就停留在这么一个阶段:它可以建库、建表、建索引,然后就是对里面的数据进

    2023-06-06
    113
  • PostgreSQL密码安全策略[亲测有效]

    PostgreSQL密码安全策略[亲测有效]引用地址:https://blog.csdn.net/weixin_34143774/article/details/89561946 请以原文为主,引用注明出处。问题:今天公司进行软件测评,在测评期

    2023-02-19
    103
  • mysql集群架构部署方案_docker搭建集群

    mysql集群架构部署方案_docker搭建集群多图文,详细介绍mysql各个集群方案 集群的好处 高可用性:故障检测及迁移,多节点备份。 可伸缩性:新增数据库节点便利,方便扩容。 负载均衡:切换某服务访问某节点,分摊单个节点的数据库压力。 集群…

    2023-02-04
    102
  • sqlserver无法启动调试器为远程调试配置防火墙_未能启动调试适配器

    sqlserver无法启动调试器为远程调试配置防火墙_未能启动调试适配器因为报错被我解决了,所以没有截图,那我就打字吧 无法启动调试的具体报错: 弹出来的第一个框: 无法启动调试 其他信息: 数据为空。不能对空值调用此方法或属性。(System.Data) 弹出来的第二个

    2023-03-12
    107
  • 使用Python命令行解决问题

    使用Python命令行解决问题Python是一种高级编程语言,可用于多种用途,包括Web开发、数据科学、人工智能等。Python在解决各种问题时都能发挥巨大的作用,这也是它成为了越来越多开发者的首选语言之一。不仅如此,Python还可以通过命令行轻松处理和解决各种问题。在这篇文章中,我们将介绍在Python中使用命令行解决问题的方法。

    2024-01-01
    60
  • 《尝试7+1天学会微信小程序开发》学习计划「建议收藏」

    《尝试7+1天学会微信小程序开发》学习计划「建议收藏」第1天:环境搭建和项目初始化安装微信开发者工具创建云开发环境在开发者工具中创建一个新的小程序项目,并将其与创建的云开发环境关联初始化项目结构和配

    2023-06-28
    90

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注