Shiro单点登录之集成CAS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shiro单点登录之集成CAS相关的知识,希望对你有一定的参考价值。

参考技术A   所以我们需要修改配置,使服务允许访问我们的CAS服务器,如下:

  修改完成之后,访问 https://cas.example.org/cas/login?service=https://www.baidu.com ,登录完成之后会重定向到百度页面并且携带者我们想要的 ticket。

  (2)导出证书: keytool -export -alias localhost -file G:\localhost.crt -keystore G:\localhost.keystore

  (3)将证书导入到jdk的证书库(进入 jre/lib/security目录下)
keytool -import -trustcacerts -alias localhost -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -file g:/localhost.crt -storepass changeit

  (2)配置 CasFilter 类,用来拦截回调请求,获取的票据,然后封装成需要认证的 CasToken。

  (3)配置 CasRealm ,该类使用 ssl 方式向 CAS服务器验证 CasToken的有效性,然后返回对应的认证信息。

  (2)输入用户名和密码开始登录

  (3)使用相同的配置,修改端口 ,启动之后访问 http://localhost:9001/readUserInfo 地址

DataEase 集成 CAS 实现用户单点登录

场景介绍

随着企业 IT 场景越来越复杂,应用平台不断增加,用户需要管理每个应用平台的登录信息;用户集中管理平台(如:“LDAP”)可以使用户在所有应用平台使用同一个用户名进行登录;而单点登录平台,可以使用户登录任一应用平台后,继续登录其他平台无需输入密码,直接进入登录后的状态。 常用的单点登录协议有OIDC、OAuth 2.0、SAML2、CAS 等,本教程将介绍部署 CAS 并集成对接到 DataEase,实现单点登录。

安装Tomcat & JDK 8

下载安装包并安装

# 下载 tomcat 8
cd /opt
wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.86/bin/apache-tomcat-8.5.86.tar.gz --no-check-certificate
tar -zxvf apache-tomcat-8.5.86.tar.gz
mv apache-tomcat-8.5.86 tomcat

#上传 JDK
tar -zxvf jdk-8u351-linux-x64.tar.gz -C /usr/local && \\
echo "export JAVA_HOME=/usr/local/jdk1.8.0_351
export PATH=\\$JAVA_HOME/bin:\\$PATH
export CLASSPATH=.\\$JAVA_HOME/lib/dt.jar:\\$JAVA_HOME/lib/tools.jar" >> ~/.bash_profile && \\
source ~/.bash_profile && \\
java -version

启动 tomcat

cd /opt/tomcat
bin/startup.sh

访问 tomcat 页面验证是否正常访问

​​http://ip:8080​

DataEase

部署 CAS

下载 CAS 程序包

# 下载 cas 程序包
wget https://repo1.maven.org/maven2/org/apereo/cas/cas-server-webapp-tomcat/5.3.14/cas-server-webapp-tomcat-5.3.14.war

# 将 cas 程序包放置于 tomcat 目录
mv cas-server-webapp-tomcat-5.3.14.war /opt/tomcat/webapps/cas.war

修改 CAS 配置

vim /opt/tomcat/webapps/cas/WEB-INF/classes/application.properties
#添加三个登录用户
cas.authn.accept.users=casuser::Mellon,user1::123456,user2::123456

#添加两条配置
#是否开启json识别功能,默认为false
cas.serviceRegistry.initFromJson=true
#忽略https安全协议,使用 HTTP 协议
cas.tgc.secure=false

vim /opt/tomcat/webapps/cas/WEB-INF/classes/services/HTTPSandIMAPS-10000001.json
#添加 http 认证:
"serviceId" : "^(https|http|imaps)://.*",

重启 Tomcat

# 重启 tomcat
/opt/tomcat/bin/shutdown.sh
/opt/tomcat/bin/start.sh

访问验证

​​http://IP:8080/cas/login​

测试用户登录: 用户:casuser 密码:Mellon 用户:user1 密码:123456 用户:user2 密码:123456

DataEase

用户登录成功,关闭页面前先点击 “登出”。

DataEase

配置 CAS 认证

DataEase 配置 CAS

使用管理员用户登录 DataEase,访问 系统管理 --> 系统配置 --> 认证设置 --> CAS 设置;编辑 CAS 设置信息:

CAS 服务地址: ​​http://CAS地址/cas/​​CAS 登录地址:

​​http://CAS地址/cas/login​​回调地址:

​​http://DataEase-IP/cas/callBack​

DataEase

设置默认登录方式为 CAS访问 系统管理 --> 系统设置 --> 系统参数 --> 基础设置,将 “默认登录方式” 改为 CAS;

DataEase

访问 DataEase 验证

访问 DataEase 的登录页面,会自动跳转到 CAS 的认证界面,填写 CAS 中的用户登录;

DataEase

可正常登录到 DataEase;

DataEase

如果你的环境中有其他用户也集成了 CAS,那么这时访问应用可实现免密直接登录。

恢复默认登录方式

浏览器输入:DataEase地址/cas/reset/admin/admin密码即可恢复普通用户登录方式;如果CAS有故障导致不能通过以上方式恢复默认登录,可修改数据库配置参数来解决: 登录 DataEase 服务器shell 界面,执行命令:

docker exec -it mysql bash

mysql -uroot -pCsii@401 -e "update dataease.system_parameter set param_value = 0 where param_key = basic.loginType;"

以上是关于Shiro单点登录之集成CAS的主要内容,如果未能解决你的问题,请参考以下文章

shiro集成CAS单点登录

spring boot应用集成cas单点登录,post请求拿不到参数

shiro中单点登录

spring下使用shiro+cas配置单点登录

Shiro学习(15)单点登录

第十五章 单点登录——《跟我学Shiro》