【SSO-CAS部署】安装部署单点登录组件CAS(5.3.x版本)

SOO是现在企业比较流行的业务整合解决方案之一,定义解决登录,可以应用在不同系统中,用户只需要登录一次,就可以访问所有相互信任的应用系统(模块开发、同家公司不同产品等等),例如百度,旗下的子系统。

架构图如下:
【SSO-CAS部署】安装部署单点登录组件CAS(5.3.x版本)_第1张图片

一,初步安装部署

准备需要用的cas-server包并配置

  1. 从CAS官网下载:上cas的官网下载cas server 点击进入官网地址,
     笔者这里选择的是5.x.x的最后一个版本5.3.x
    【SSO-CAS部署】安装部署单点登录组件CAS(5.3.x版本)_第2张图片
  • 下载后解压导入IDEA

【SSO-CAS部署】安装部署单点登录组件CAS(5.3.x版本)_第3张图片

  1. 编译打包
  • 替换Maven的中央仓库
 	<!--阿里云仓库-->
        <repository>
            <id>aliyunmaven</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </repository>
        <!--中央仓库  比oss稍微快一点-->
        <repository>
            <id>central.maven.org</id>
            <url>http://central.maven.org/maven2/</url>
        </repository>
  1. 编译打包下载后的源码,部署到Tomcat里面
    【SSO-CAS部署】安装部署单点登录组件CAS(5.3.x版本)_第4张图片

3,启动tomcat 成功后打开CAS默认地址:
http://localhost:8080/cas/login
【SSO-CAS部署】安装部署单点登录组件CAS(5.3.x版本)_第5张图片
图中箭头显示:非安全连接和静态密码

登录默认的账号密码:
账号:casuser   
密码:Mellon

显示登录成功:
【SSO-CAS部署】安装部署单点登录组件CAS(5.3.x版本)_第6张图片

  • 修改默认的账号账号密码在
    webapps\cas\WEB-INF\classes\application.properties 文件中:

【SSO-CAS部署】安装部署单点登录组件CAS(5.3.x版本)_第7张图片

初步部署成功!!!

二,动态数据库账号密码支持

  • 确认已经更改maven仓库地址(否则会很慢)
 <!--阿里云仓库-->
        <repository>
            <id>aliyunmaven</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </repository>
        <!--中央仓库  比oss稍微快一点-->
        <repository>
            <id>central.maven.org</id>
            <url>http://central.maven.org/maven2/</url>
        </repository>
  • 在源码包里面添加数据库连接驱动
<!--数据库认证相关 start-->
<dependency>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-support-jdbc-drivers</artifactId>
    <version>${cas.version}</version>
</dependency>
<dependency>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-support-jdbc</artifactId>
    <version>${cas.version}</version>
</dependency>
                
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.46</version>
</dependency>
<!--数据库认证相关 end-->

配置登录用户数据库

  • 在webapps\cas\WEB-INF\classes\application.properties中修改配置
##
# CAS Authentication Credentials
# 注释静态密码
# cas.authn.accept.users=casuser::Mellon
# cas.authn.accept.users=admin::useradmin

# 配置数据库
cas.authn.jdbc.query[0].url=jdbc:mysql://127.0.0.1:3306/sso?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
cas.authn.jdbc.query[0].user=root
cas.authn.jdbc.query[0].password=root
cas.authn.jdbc.query[0].sql=select * from sso_user where username=?
cas.authn.jdbc.query[0].fieldPassword=password
cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
# 添加可以使用http认证
cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true

修改cas可支持的service(支持http)

  • 编辑 / webapps/ cas/ WEB-INF/ classes/ services/ HTTPSandIMAPS-10000001.json
# 支持http
"serviceId" : "^(https|imaps)://.*", 改为 "serviceId" : "^(https|imaps|http)://.*",

编译打包-- >> 部署
【SSO-CAS部署】安装部署单点登录组件CAS(5.3.x版本)_第8张图片
静态账号密码提示框已经消失!

对MD5密码提供支持

  • application.properties文件中添加如下配置
cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULT
cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5
cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8

配置上之后,重启服务,数据库中存储的密码就是MD5加密过的了。
注意数据库中的MD5密文在CAS系统是区分大小写的,默认是MD5小写匹配。

参考资料 & 致谢

【1】CAS单点登录入门
【2】cas 5.2 单点登录(sso)服务器部署
【3】CAS-5.1.x,配置数据库以及实现自定义加密认证

你可能感兴趣的:(Java,/,C++,/,C#,....,Install,/,Deploy,/,Release)