CAS对接文档

CAS客户端(Client)接入手册

作者: 刘凯
邮箱: zhizhufan@foxmail.com
钉钉账号: 9cw-qkodvrspf


CAS Server 信息


单点登录

登录流程

  1. 浏览器访问 http://106.13.37.193:8480/cas/login?service=http://your-app.com/login-success

    请将http://your-app.com/login-success 替换成你的系统地址

  2. 然后输入认证信息进行认证

  3. 认证成功后,CAS Server会生成一个票据(Ticket)重定向回你的应用,并附带票据作为查询参数。

    例如:http://your-app.com/login-success?ticket=ST-0123456789

    Ticket是一次性的,并且10秒就会失效

  4. 在你的应用中,通过获取请求参数中的票据信息来进行验证。你的应用要发送一个如下的 HTTP的GET 请求到 CAS Server,http://106.13.37.193:8480/cas/p3/serviceValidate?ticket=ST-0123456789&service=http://your-app.com/login-success 因为Ticket是一次性的,所以这个请求发送过Ticket就会失效,CAS Service返回一个如下的XML, 读取并解析cas:user属性获取当前登录人的账号

<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
	<cas:authenticationSuccess>
		<cas:user>admin</cas:user>
		<cas:attributes>
			<cas:credentialType>UsernamePasswordCaptchaCredential</cas:credentialType>
			<cas:isFromNewLogin>true</cas:isFromNewLogin>
			<cas:authenticationDate>2023-09-21T15:51:14.275+08:00[Asia/Shanghai]</cas:authenticationDate>
			<cas:authenticationMethod>QueryDatabaseAuthenticationHandler</cas:authenticationMethod>
			<cas:successfulAuthenticationHandlers>UsernamePasswordCaptchaAuthenticationHandler
			</cas:successfulAuthenticationHandlers>
			<cas:name>超管</cas:name>
			<cas:longTermAuthenticationRequestTokenUsed>false</cas:longTermAuthenticationRequestTokenUsed>
		</cas:attributes>
	</cas:authenticationSuccess>
</cas:serviceResponse>


单点退出

退出流程

  1. 首先需要接入的系统提供一个退出的HTTP接口,要求是POST请求。比如http://your-app.com/logout/cas
  2. 在浏览器中请求http://106.13.37.193:8480/cas/logout?service=http://your-app.com/login-success
    请将http://your-app.com/login-success 替换成你的系统地址
  3. 在上一步跳转到Cas Server之后,Cas Server会向已经登录过的系统发送一个POST请求,请求如下
POST http://your-app.com/logout/cas
Content-Type: application/x-www-form-urlencoded

logoutRequest=<samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="LR-1-cKY5Ta40H8o8Pc3g8dYKhKHL" Version="2.0" IssueInstant="2024-04-18T16:21:49Z"><saml:NameID xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">@NOT_USED@</saml:NameID><samlp:SessionIndex>ST-1-iFCUl9SuvVDmsxGfDT-pUr9uHsQK-Mac</samlp:SessionIndex></samlp:LogoutRequest>

需要接入的系统解析上面的logoutRequest参数,提取出<samlp:SessionIndex>ST-1-iFCUl9SuvVDmsxGfDT-pUr9uHsQK-Mac</samlp:SessionIndex>里面的内容。然后做退出操作。

相关链接

  1. CAS官网
  2. SpringSecurity关于CAS接入文档
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
server 地址: http://www.jasig.org/cas/download client 地址: http://www.ja-sig.org/downloads/cas-clients/ 当前最新版本 cas-server-3.4.2 , cas-client-3.1.10 2. 安装 server l 解压 cas-server-3.4.2 ,将 cas-server-3.4.2\modules\cas-server-webapp-3.4.2.war 拷贝到 tomcat 的 webapps 下。 3. 配置 server 3.1. 添加 cas server 依赖的 jar n cas-server-3.4.2\modules\cas-server-support-jdbc-3.4.2.jar 、 cas-server-integration-restlet-3.4.2.jar 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 目录下。 n 数据库驱动 jar 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 目录下。 n 到 apache 网站下载下面三个 cas server 依赖 jar 包拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 目录下 Ø http://apache.freelamp.com/commons/collections/binaries/commons-collections-3.2.1-bin.zip Ø http://apache.etoak.com/commons/dbcp/binaries/commons-dbcp-1.4-bin.zip Ø http://apache.etoak.com/commons/pool/binaries/commons-pool-1.5.4-bin.zip n 下载 restlet 相关 http://www.restlet.org/downloads/ , 解压后将下面 jar 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib: ( 它奶奶地这一步骤很折腾 ) com.noelios.restlet.ext.servlet_2.5.jar com.noelios.restlet.ext.spring_2.5.jar com.noelios.restlet.jar org.restlet.ext.spring_2.5.jar org.restlet.jar n 下载 CGlib http://sourceforge.net/projects/cglib/files/ 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 。 n 下载 ASM/OW2 http://forge.ow2.org/projects/asm/ 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 。 3.2. 添加数据源

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炸娃程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值