@(Pigx)[笔记, 单点, 登录]
前言:工作中目前采用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来运行的。
您的名字与姓氏是什么?
[Unknown]: sso.pig4cloud.com
您的组织单位名称是什么?
[Unknown]: pig4cloud
您的组织名称是什么?
[Unknown]: pigx
您所在的城市或区域名称是什么?
[Unknown]: fuzhou
您所在的省/市/自治区名称是什么?
[Unknown]: fujian
该单位的双字母国家/地区代码是什么?
[Unknown]: china
CN=sso.pig4cloud.com, OU=pig4cloud, O=pigx, L=fuzhou, ST=fujian, C=china是否正确?
[否]: y
存储在文件 中的证书
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/
警告: 使用 -cacerts 选项访问 cacerts 密钥库
所有者: CN=sso.pig4cloud.com, OU=pig4cloud, O=pigx, L=fuzhou, ST=fujian, C=china
发布者: CN=sso.pig4cloud.com, OU=pig4cloud, O=pigx, L=fuzhou, ST=fujian, C=china
序列号: 7942e78c
生效时间: Wed Mar 20 17:45:56 CST 2019, 失效时间: Fri Jan 26 17:45:56 CST 2029
证书指纹:
SHA1: 7D:87:51:81:36:64:99:B7:A1:17:15:43:87:61:25:2A:05:40:5E:3A
SHA256: 1B:BC:D3:DA:4B:51:4A:B2:84:EC:A2:02:8A:92:62:33:AA:C5:A8:AC:E4:13:CF:80:34:95:38:80:9B:50:19:DD
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3
扩展:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 2B CE 2C CD BE BD 09 A9 C0 FB 0D F0 75 98 BB 6F +.,.........u..o
0010: 63 82 93 17 c...
]
]
是否信任此证书? [否]: y
证书已添加到密钥库中
sso.pig4cloud.com
下载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请求都补充