CAS 登录使用

概述

CAS 是中央认证服务(Central Authentication Service)的缩写,是一种单点登录协议。它允许用户只需一次登录即可访问多个不同应用程序或网站,而无需在每个应用程序中单独登录。CAS 通过在用户登录时颁发票据(ticket),然后应用程序使用该票据来验证用户身份,实现单点登录功能。

单点登录优势

使用 CAS 可实现一次登录,多系统访问,提升用户体验并降低管理成本

CAS 登录流程示意

接入步骤

PIGX 后台新增登录参数

进入系统管理 > 密钥管理 > 新增。

CAS 登录参数配置

描述字段:

http://127.0.0.1:8080/cas

回调地址:

http://localhost:8888/?state=CAS-LOGIN#/authredirect
地址配置

描述字段填写 CAS 服务器地址,回调地址填写前端应用地址

回调约定

回调地址中的 state=CAS-LOGIN 需要与前端登录跳转逻辑保持一致

前端登录页面增加 CAS 登录

前端登录页 social.vue 增加 CAS 登录按钮和跳转逻辑。

<div @click="handleClick('CAS')">CAS</div>
if (thirdpart === 'CAS') {
  url = `http://127.0.0.1:8080/cas/login?service=http%3A%2F%2Flocalhost%3A8888%2F%3Fstate%3DCAS-LOGIN%23%2Fauthredirect`;
}
前端 CAS 登录按钮
编码要求

service 参数必须使用 URL 编码,否则 CAS 回调地址可能解析失败

登录验证

在登录页面选择 CAS 登录后,系统会按以下顺序完成认证:

  • 跳转到 CAS 服务端登录页
  • 用户在 CAS 服务端完成身份认证
  • CAS 按 service 参数回调前端地址
  • 前端根据 state=CAS-LOGIN 继续完成登录处理

选学:快速搭建 CAS 服务

如果需要本地测试环境,可使用 Docker 快速搭建 CAS 服务器:

docker run -d --name cas5 -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/cas:latest
测试账号

默认用户名密码:admin/123456

仅供测试

cas:latest 适合本地联调,不建议直接用于生产环境部署