@(Pigx)[笔记, 单点, 登录]
前言:工作中目前采用CAS,从零开始学习与生产应用实践,这里针对模块知识点,根据本机逐渐记录。
初始CAS单点登录(Single Sign On ,简称SSO)是目前比较流行的服务于企业业务整合的解决方案之一,SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
CAS(Central Authentication Service)即中央认证服务,是一个企业多语言单点登录的解决方案,并成为一个身份验证和授权的综合平台,是 Yale大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法。
CAS 5.0.x版本之后的最大改变就是引入了现在比较流行的微服务架构也就是spring boot这套,他将之前使用bean注入的换成了spring boot的配置来弄了,以及增加了容器(docker)。
CAS 6.0.x版本之后在架构,配置或行为方面发生重大变化,Java 10、Servlet规范v4、spring v5、Spring Boot v2、度量、端点、端点安全、CAS命令行Shell、动态SAML2元数据、Webflow装饰、自适应认证IP智能、Azure MFA集成、Google身份验证器帐户管理、OAuth和OpenID连接JSON输出、OAuth设备流程、OAuth证明密钥代码交换(PKCE)、CAS作为多因素身份验证提供程序、Couchbase审计、SAML2元数据健康状况、OAuth令牌自省、YubiKey账户管理、Nexmo SMS集成
Jdk11
Tomcat 9(注意要使用tomcat9版本以上的)
cas-overlay-template-6.0
idea 2018.3 (终极版)
cas-overlay是用gradle编译的,cas的官方说明文档发现官方提供了一个无侵入式的一套来设计cas,所谓的无侵入式就是你直接打成war包,放到tomcat里面运行,你能运行,你也可以自己建立相应的文件,cas这套他能将你的覆盖掉他原有的(名字路径相同)。通过这样来达到改变代码以及其他东西来完成cas服务器的搭建先来搭建一波简单的cas服务器,也就是github下载下来的直接放到tomcat来运行的。
使用第一个命令:keytool -genkey -alias caskeystore -keyalg RSA -keypass 123456 -storepass 123456 -keystore thekeystore -validity 3600 您的名字与姓氏是什么? [Unknown]: sso.pig4cloud.com您的组织单位名称是什么? [Unknown]: pig4cloud您的组织名称是什么? [Unknown]: pigx您所在的城市或区域名称是什么? [Unknown]: fuzhou您所在的省/市/自治区名称是什么? [Unknown]: fujian该单位的双字母国家/地区代码是什么? [Unknown]: chinaCN=sso.pig4cloud.com, OU=pig4cloud, O=pigx, L=fuzhou, ST=fujian, C=china是否正确? [否]: y 继续下一个命令:keytool -export -trustcacerts -alias caskeystore -file pigcas.crt -keystore thekeystore -storepass 123456,这时候会生出一个交cas.crt的证书。 存储在文件 <pigcas.cer> 中的证书ls -tlar pigcas.*
-rw-rw-r--. 1 cas cas 2631 3月 20 17:45 thekeystore-rw-rw-r--. 1 cas cas 901 3月 20 17:46 pigcas.crt拷贝
cp pigcas.crt /home/cas/app/jdk-11.0.2/lib/security/
下载cas-overlay 6.0
这时候基本的就完成了,这时候就有人问那前面生成的证书也没什么用啊,没错,我们现在的确是没有用到证书,所以这上面不是有两个提醒吗,第一个就是因为我们使用的是http而不是https,所以我们要去配置tomcat。找到tomcat里面的conf中的server.xml将
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="/home/cas/tomcat9/tomcat-cas/webapps/thekeystore" type="RSA" certificateKeystoreType="JKS" certificateKeystorePassword="123456"/> </SSLHostConfig> </Connector>重新启动tomcat,然后继续按刚才的去访问,发现找不到,因为我们之前使用的是http,现在换成https了,你只要加入https就可以出现,这时候我们明显发现那个no-security的提醒已经没有了,cas要求是以域名来访问的。 剩下的我们就是登录进去,默认的用户名和密码是casuser:Mellon,登录进去就是这个页面。后继将如何使用动态的数据库以及自定义登录验证还有restful请求都补充