最强SSO单点登录教程(六)CAS-简介&配置https

作者:蓝雄威,叩丁狼教育高级讲师。原创文章,转载请注明出处。

一、什么是什么是CAS

CAS(Central Authentication Service) 是 Yale (耶鲁)大学发起的开源的企业级单点登录系统。它的特点:

  • Java (Spring Webflow/Spring Boot) 服务组件
  • 可插拔身份验证支持(LDAP,Database,X.509,MFA)
  • 支持多种协议(CAS,SAML,OAuth,OpenID,OIDC)
  • 跨平台客户端支持(Java,.Net,PHP,Perl,Apache等)
  • 与uPortal,Liferay,BlueSocket,Moodle,Google Apps等集成

分为CAS Server服务端和CAS Client客户端:

CAS Server:
CAS Server 负责完成对用户的认证工作, CAS Server 需要独立部署,有不止一种 CAS Server 的实现, Yale CAS Server 和 ESUP CAS Server 都是很不错的选择。
CAS Server 会处理用户名 / 密码等凭证 (Credentials) ,它可能会到数据库检索一条用户帐号信息,也可能在 XML 文件中检索用户密码,对这种方式, CAS 均提供一种灵活但同一的接口 / 实现分离的方式, CAS 究竟是用何种认证方式,跟 CAS 协议是分离的,也就是,这个认证的实现细节可以自己定制和扩展.

CAS Client:
CAS Client 负责部署在客户端(注意,我是指 Web 应用),原则上, CAS Client 的部署意味着,当有对本地 Web 应用的受保护资源的访问请求,并且需要对请求方进行身份认证, Web 应用不再接受任何的用户名密码等类似的 Credentials ,而是重定向到 CAS Server进行认证。
目前, CAS Client 支持(某些在完善中)非常多的客户端,包括 Java 、 .Net 、 ISAPI 、 Php 、 Perl 、 uPortal 、 Acegi 、 Ruby 、VBScript 等客户端,几乎可以这样说, CAS 协议能够适合任何语言编写的客户端应用。

二、https的配置

为了提高安全性,要求和CAS服务器的所有通信必须发生在一个安全的通道.所以服务端的数据传输需要使用https协议.
https能做什么同学们可以百度一下,在此就不做过多延伸.
步骤如下:
1.生成服务器的密匙文件wolfcode.keystore

keytool -genkey -alias wolfcode -keyalg RSA -keysize 2048 -validity 36500 -keystore D:/keys/wolfcode.keystore

参数说明:

  • genkey 生成密钥
  • keyalg 指定密钥算法,这时指定RSA,
  • keysize 指定密钥长度,默认是1024位,这里指定2048,长一点,比较难破解,
  • validity 指定证书有效期,这里指定36500天.
  • alias 指定别名,这里是wolfcode
  • keystore 指定密钥库存储位置,这里存在 D:/keys/目录下

注意:您的名字与姓氏www.sso.com是CAS服务器使用的域名,不是随便乱定的,其他的随意.

最强SSO单点登录教程(六)CAS-简介&配置https_第1张图片

2.导出证书:

keytool -export -alias wolfcode -storepass 123456 -file D:/keys/wolfcode.cer -keystore D:/keys/wolfcode.keystore

参数说明:

  • alias指定别名为wolfcode ;
  • storepass指定私钥为123456;
  • file指定导出证书的文件名为wolfcode.cer;
  • keystore指定之前生成的密钥文件的文件名。

注意:-alias-storepass必须为生成wolfcode .keystore密钥文件时所指定的别名和密码,否则证书导出失败.

最强SSO单点登录教程(六)CAS-简介&配置https_第2张图片

3.导入证书导入到jdk信任库

keytool -import -alias wolfcode -keystore C:/"Program Files"/Java/jdk1.8.0_144/jre/lib/security/cacerts -file D:/keys/wolfcode.cer -trustcacerts

注意:
1.原来的$JAVA_HOME/jre/lib/security/cacerts文件要先删掉,否则会报出java.io.IOException: Keystore was tampered with, or password was incorrect错误.
2.如果路径有空格或特殊字符,像我上面一样加上引号.

最强SSO单点登录教程(六)CAS-简介&配置https_第3张图片

如果到这步都没问题,说明https配置好了.接下来就搭建CAS Server服务端

你可能感兴趣的:(最强SSO单点登录教程(六)CAS-简介&配置https)