pigx-cas 单点登录(一)——初识SSO

pigx-cas 单点登录(一)——初识SSO

@(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集成

  • Github: https://github.com/apereo/cas
  • 下载链接:https://github.com/apereo/cas/tags
  • 开发文档:https://apereo.github.io/cas/5.3.x/index.html
  • 官网:https://www.apereo.org/projects/cas

工具

Jdk11
Tomcat 9(注意要使用tomcat9版本以上的)
cas-overlay-template-6.0
idea 2018.3 (终极版)

cas-overlay是用gradle编译的,cas的官方说明文档发现官方提供了一个无侵入式的一套来设计cas,所谓的无侵入式就是你直接打成war包,放到tomcat里面运行,你能运行,你也可以自己建立相应的文件,cas这套他能将你的覆盖掉他原有的(名字路径相同)。通过这样来达到改变代码以及其他东西来完成cas服务器的搭建先来搭建一波简单的cas服务器,也就是github下载下来的直接放到tomcat来运行的。

  1. 使用第一个命令: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]:  china
CN=sso.pig4cloud.com, OU=pig4cloud, O=pigx, L=fuzhou, ST=fujian, C=china是否正确?
  [否]:  y
  1. 继续下一个命令:keytool -export -trustcacerts -alias caskeystore -file pigcas.crt -keystore thekeystore -storepass 123456,这时候会生出一个交cas.crt的证书。
存储在文件  中的证书

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/

  1. 最后将证书导入到jre中:keytool -import -trustcacerts -alias caskeystore -keystore “/home/cas/app/jdk-11.0.2/lib/security/cacerts” -file “/home/cas/app/jdk-11.0.2/lib/security/pigcas.crt” -storepass 123456
警告: 使用 -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
证书已添加到密钥库中
  1. 记住证书生成后记得要修改host文件,因为我们是自己生成的证书。修改host文件其实就是将本地的ip对应到你刚才输入的域名,也就是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请求都补充

你可能感兴趣的:(cas)